00:10:25 | * | Joe_knock left #nimrod ("Leaving") |
00:13:52 | * | flaviu quit (Ping timeout: 240 seconds) |
00:15:48 | * | Trustable quit (Quit: Leaving) |
00:27:40 | * | kniteli quit (Ping timeout: 258 seconds) |
00:39:40 | * | BitPuffin joined #nimrod |
00:39:59 | * | kniteli joined #nimrod |
00:41:32 | * | vendethiel quit (Ping timeout: 245 seconds) |
00:45:41 | * | kniteli quit (Ping timeout: 258 seconds) |
00:55:57 | * | johnsoft quit (Ping timeout: 240 seconds) |
00:56:09 | * | vendethiel joined #nimrod |
00:56:10 | * | johnsoft joined #nimrod |
00:58:07 | * | kniteli joined #nimrod |
01:10:02 | * | bjz quit (Read error: Connection reset by peer) |
01:10:03 | * | bjz_ joined #nimrod |
01:16:32 | * | darkf joined #nimrod |
01:25:53 | * | willwillson quit (Remote host closed the connection) |
01:27:11 | NimBot | Araq/Nimrod devel 5ab3542 Araq [+0 ±1 -0]: fixes #939 |
01:27:11 | NimBot | Araq/Nimrod devel 326bdae Araq [+0 ±6 -0]: fixes #837 |
01:37:43 | * | silven quit (Remote host closed the connection) |
01:39:44 | * | kniteli quit (Ping timeout: 258 seconds) |
01:39:56 | * | silven joined #nimrod |
01:51:08 | * | superfun1 joined #nimrod |
01:51:40 | * | kniteli joined #nimrod |
02:06:00 | * | superfun1 quit (Ping timeout: 264 seconds) |
02:21:28 | * | q66 quit (Quit: Leaving) |
02:21:32 | * | dom96_ quit (Ping timeout: 245 seconds) |
02:23:53 | * | vendethiel quit (Ping timeout: 264 seconds) |
02:26:36 | * | vendethiel joined #nimrod |
02:27:07 | * | dom96_ joined #nimrod |
02:30:20 | * | kniteli quit (Ping timeout: 258 seconds) |
02:42:34 | * | kniteli joined #nimrod |
02:45:52 | * | mko quit (Ping timeout: 240 seconds) |
02:48:06 | * | brson quit (Quit: leaving) |
02:49:19 | * | vendethiel quit (Ping timeout: 255 seconds) |
02:50:25 | * | nande quit (Remote host closed the connection) |
02:51:03 | * | vendethiel joined #nimrod |
03:00:30 | * | bjz_ quit (Ping timeout: 250 seconds) |
03:26:14 | * | BitPuffin quit (Ping timeout: 244 seconds) |
03:27:51 | * | bjz joined #nimrod |
03:35:22 | * | vendethiel quit (Ping timeout: 240 seconds) |
03:36:28 | * | brson joined #nimrod |
03:38:18 | * | vendethiel joined #nimrod |
03:41:47 | * | bjz_ joined #nimrod |
03:45:05 | * | bjz quit (Ping timeout: 258 seconds) |
03:47:00 | * | kniteli quit (Ping timeout: 258 seconds) |
03:59:10 | * | kniteli joined #nimrod |
04:05:46 | * | perturbation joined #nimrod |
04:12:20 | * | brson quit (Quit: leaving) |
04:18:17 | perturbation | I was playing around with creating sequence/array assignment from slices a la Fortran's implied do loops |
04:19:10 | perturbation | i.e., C3 = (/(I, I=1, 4)/) in Fortran <=> var a: seq[T] = newSeq[T](1..4) in Nim |
04:20:07 | perturbation | I came up with something here (https://gist.github.com/singularperturbation/476ebc90432a9c2c7822) using templates... does this look reasonable? |
04:21:12 | perturbation | (It works directly as overloading newSeq with a slice if I make it a procedure, but if I have it as a template, I can't overload anymore) |
04:38:15 | fowl | perturbation, why not use proc `@` [T] (some:Slice[T]): seq[T] |
04:39:07 | fowl | @(-8 .. 8) |
04:43:49 | perturbation | I wanted to have it as a template instead of proc to avoid overhead of the function call |
04:43:52 | perturbation | that's cleaner syntax though |
04:45:33 | fowl | if you want inline code use the inline pragma |
04:47:25 | * | vendethiel quit (Ping timeout: 272 seconds) |
04:49:06 | perturbation | what I really want is the moral equivalent of: a = @[1..4] (*magic*) -> a = @[1,2,3,4] as if I had written it long hand (AFAIK inlined procs aren't evaluated at compile-time) |
04:53:39 | perturbation | actually let me check that |
04:58:06 | * | vendethiel joined #nimrod |
05:13:16 | perturbation | it looks like it does (about) the same thing with inline as with the template except that the inner newSeq[int] call isn't inlined |
05:13:38 | perturbation | though the generated C is kind of tough (for me) to follow |
05:14:06 | fowl | (AFAIK inlined procs aren't evaluated at compile-time) neither are templates |
05:15:40 | perturbation | I thought templates *had* to be evaluated at compile time |
05:15:47 | perturbation | something something AST magic |
05:17:13 | fowl | no templates are a substitution mechanism |
05:17:25 | fowl | you could do what you want with macros though |
05:18:32 | * | BlaXpirit joined #nimrod |
05:18:37 | * | vendethiel quit (Ping timeout: 240 seconds) |
05:19:00 | perturbation | hmmm... thanks fowl |
05:20:30 | fowl | good night and good luck |
05:21:18 | * | kniteli quit (Ping timeout: 258 seconds) |
05:24:19 | Varriount | dom96: Wouldn't it be prudent to run the forum via a daemon? If your local internet connection drops, then the forum will go down. |
05:26:29 | * | vendethiel joined #nimrod |
05:32:48 | * | kniteli joined #nimrod |
05:38:06 | * | perturbation quit (Quit: Leaving) |
05:43:42 | * | ARCADIVS joined #nimrod |
05:49:45 | * | bjz joined #nimrod |
05:50:14 | * | bjz_ quit (Ping timeout: 256 seconds) |
05:50:22 | * | untitaker quit (Ping timeout: 250 seconds) |
05:50:45 | * | vendethiel quit (Ping timeout: 272 seconds) |
05:54:42 | * | vendethiel joined #nimrod |
05:56:02 | * | untitaker joined #nimrod |
06:07:55 | * | gokr_ quit (Remote host closed the connection) |
06:08:09 | * | gokr_ joined #nimrod |
06:10:18 | * | Demos joined #nimrod |
06:17:13 | * | vendethiel quit (Ping timeout: 255 seconds) |
06:18:48 | * | kniteli quit (Ping timeout: 258 seconds) |
06:30:59 | * | kniteli joined #nimrod |
06:34:35 | * | vendethiel joined #nimrod |
06:54:50 | * | kniteli quit (Ping timeout: 258 seconds) |
06:56:22 | * | vendethiel quit (Ping timeout: 240 seconds) |
07:03:37 | * | gokr_ quit (Ping timeout: 240 seconds) |
07:04:04 | * | gokr_ joined #nimrod |
07:07:00 | * | kniteli joined #nimrod |
07:21:19 | * | gokr_ quit (Read error: Connection reset by peer) |
07:21:26 | * | gokr_ joined #nimrod |
07:25:40 | * | gour joined #nimrod |
07:27:22 | * | vendethiel joined #nimrod |
07:30:03 | * | ekarlso- joined #nimrod |
07:31:06 | ekarlso- | So what other "new language" does nimrod compare to ? |
07:33:16 | * | bjz quit (Ping timeout: 255 seconds) |
07:39:51 | Varriount | ekarlso-: Hm? |
07:40:32 | Varriount | ekarlso-: Could you clarify your answer? |
07:41:04 | * | gokr_ quit (Remote host closed the connection) |
07:47:42 | ekarlso- | Varriount: I mean how does it compare to say Golang or alike |
07:49:53 | * | bjz joined #nimrod |
07:50:15 | * | vendethiel quit (Ping timeout: 244 seconds) |
07:50:16 | gokr | ekarlso-: I wrote a bit about this, at http://goran.krampe.se/category/nim |
07:52:33 | gokr | Compared to golang - although I know go too little - I think : nim is faster and generally more capable/advanced while still as easy to read/write. |
07:53:07 | gokr | Then nim has a real exception model. Nim has native multithreading in a thread pool. Nim has very powerful AST based macros. |
07:53:10 | ekarlso- | gokr: does nim have objects and crud or ? |
07:53:34 | gokr | objects if you like, see my articles in that URL - I have 3 articles on OO in Nim. |
07:53:40 | ekarlso- | ok :) |
07:53:58 | ekarlso- | gokr: so it's on the same level as go then vs rustlang which is moer a sys lang I guess ? |
07:54:00 | * | vendethiel joined #nimrod |
07:54:39 | gokr | I would say its closer to Rust when it comes to being able to do system level work - but still "practical" as go. |
07:55:08 | ekarlso- | gokr: who's behind Nimrod also ? :) |
07:55:09 | gokr | Rust doesn't have GC at all, Nim has a very efficient and lightweight GC "per thread". |
07:55:35 | gokr | There is no company behind Nim (its being renamed to "Nim") but a very friendly and capable community. |
07:55:53 | gokr | Araq here is the primary author and lead. |
07:56:00 | ekarlso- | gokr: hmm, anyone sponsoring it then or ? |
07:56:13 | gokr | Nope, its a "true" open source project. |
07:56:21 | bjz | Araq, with his love and passion :) |
07:56:23 | bjz | <3 |
07:56:34 | gokr | Also, a big difference in implementation - is that Nim compiles via C/C++ (or js). |
07:56:44 | ekarlso- | gokr: vs ? |
07:56:51 | bjz | direct to llvm IR |
07:57:00 | gokr | vs compiling directly to native or via llvm etc. |
07:57:01 | ekarlso- | is llvm bad or ? ^^ |
07:57:12 | bjz | Go goes to the Plan 9 compiler I think |
07:57:23 | bjz | ekarlso-: just different |
07:57:42 | bjz | ekarlso-: Nim is probably more flexible in its backend |
07:57:44 | bjz | than Rust or Go |
07:58:19 | gokr | Not "bad" per se, but if you target llvm you limit yourself a bit I would say. Also, Nim is quite flexible as bjz says - for example, if you need to integrate with lots of C/C++ libraries its not hard to do. |
07:58:50 | ekarlso- | how big of a community is nimrod vs rust / go ? |
07:59:02 | bjz | of course once enscripten is updated (finally!) to the latest clang, you can go via that with Rust, where as Go you can't. But thant's not quite the same as compiling to actual JS |
07:59:05 | ekarlso- | reason I ask is because typically the bigger community the more libs it has |
07:59:12 | bjz | well, more ideomatic JS |
07:59:20 | bjz | Go > Rust > Nim |
07:59:30 | bjz | Rust is exploding pretty rapidly |
07:59:42 | bjz | though |
07:59:45 | bjz | but still quite behind |
08:00:14 | gokr | Its worth noting though that Nim has a fairly good eco system already. |
08:00:19 | bjz | but it depends on what you want out of a language |
08:00:25 | bjz | gokr: yep |
08:00:39 | gokr | And wrapping C stuff is fairly trivial. |
08:00:45 | gokr | As one of my articles show. |
08:01:00 | ekarlso- | heh, the language wars ;) |
08:01:18 | bjz | yeah, both Go, Rust and Nim benenifit from being able to piggyback off C |
08:01:26 | gokr | Now... my take is: Rust is just too low level, immature as a language and... hurts my eyes generally. |
08:01:50 | gokr | I love the effort - but I just can't see myself writing/reading lots of Rust code and having fun at the same time. |
08:01:58 | ekarlso- | so bad with rust ? :d |
08:02:03 | gokr | The lack of GC etc, is a deal breaker for me. |
08:02:16 | gokr | And the error handling model? yikes. |
08:02:31 | gokr | In fact, both go and rust seem to suck compared to Nim in that area. |
08:03:00 | gokr | Now... go is popular, and I think its probably a very good choice for "network services" stuff. |
08:03:09 | gokr | Like servers etc, and well, probably more than that too. |
08:03:37 | gokr | And some parts in go are really neat - for example, I hope Araq will borrow the idea of delegation in go objects. |
08:04:12 | gokr | But... some parts suck, like error handling. And... I have read several articles from people "moving away" from go after a brief "love affair". |
08:04:27 | gokr | IMHO kinda like nodejs :) |
08:05:02 | gokr | Deceptively easy for small examples. Some slick concepts dragging you in. Then you realize that shit... how do I write something substantial without going INSANE? |
08:05:33 | Triplefox | for some reason language hype is never about productivity |
08:06:07 | gokr | Did you guys see that WAT presentation on js? |
08:06:09 | ekarlso- | i dont like the error handling in go tbh |
08:06:10 | gokr | Super funny. |
08:06:19 | ekarlso- | if error != nil all over |
08:06:29 | gokr | exactly. Nim has nice and simple exceptions. |
08:08:35 | gokr | https://www.destroyallsoftware.com/talks/wat |
08:08:36 | gour | i was playing with go wanting to use its static-site-generator, and for my Nim is modern Ada and more which first of all means 'type safety' |
08:08:40 | gokr | Insanely funny. |
08:10:37 | ekarlso- | that's one reason I like Python atm for the work I do, try: except: ... |
08:10:47 | ekarlso- | vs doing 100k if error != nill |
08:10:51 | gokr | Oh, if you like Python, then Nim should be perfect. |
08:11:49 | ekarlso- | gokr: is nimrod statically typed or ? |
08:11:55 | gokr | I wrote about lots of languages a year ago (but I missed Nim, so wrote a followup to that): http://goran.krampe.se/2013/09/07/new-languages-this-century/ |
08:12:16 | gokr | Its statically typed, but you also have multimethod dynamic dispatch on objects. |
08:12:26 | ekarlso- | gokr: yeah, not like there's too few of them :p |
08:13:17 | gokr | My followup for Nim is here: http://goran.krampe.se/2014/10/20/i-missed-nim/ |
08:14:02 | gokr | So yes, its statically typed. But I am a Smalltalker at heart and Nim is one of the first statically typed languages for me that actually feels comfortable working in. |
08:14:37 | * | vendethiel quit (Ping timeout: 240 seconds) |
08:17:15 | gokr | ekarlso-: So my advice - read my articles and then hop in, the water is fine. |
08:17:48 | gokr | Also, in the Nim community you can easily get involved and make a difference. |
08:17:58 | gokr | I don't think go and rust offers that as readily. |
08:21:34 | ekarlso- | gokr: pratar ni svenska btw ? :) |
08:21:44 | gokr | Jepp, jag iaf :) |
08:22:09 | gokr | Gissade nästan att "ekarlso" kunde vara svenskt, eller? |
08:22:38 | ekarlso- | gokr: norbagge eller hur man skriver det på svenska ;) |
08:22:53 | gokr | ah! |
08:23:06 | gokr | Var i Norge? |
08:23:33 | ekarlso- | gokr: Sandnes ved Stavanger ca :) |
08:23:42 | ekarlso- | west-coast |
08:24:04 | ekarlso- | gokr: can you re-post the articles in a pm btw? I can't see all the links :p |
08:24:14 | gokr | 23 years ago me and a friend drove up to Lofoten and sailed with out Hobie 18 Formula for a week :) |
08:24:21 | gokr | our |
08:25:28 | gokr | ekarlso-: Got it? |
08:26:50 | * | kniteli quit (Ping timeout: 258 seconds) |
08:31:30 | ekarlso- | gokr: yap |
08:37:03 | * | vendethiel joined #nimrod |
08:42:51 | gokr | ekarlso-: Just ask btw, we try to help |
08:43:01 | ekarlso- | gokr: sure |
08:45:41 | * | kniteli joined #nimrod |
08:57:37 | * | vendethiel quit (Ping timeout: 240 seconds) |
09:00:51 | * | vendethiel joined #nimrod |
09:07:58 | * | Trustable joined #nimrod |
09:37:29 | * | Demos quit (Read error: Connection reset by peer) |
09:44:13 | * | vendethiel quit (Ping timeout: 265 seconds) |
09:46:24 | * | vendethiel joined #nimrod |
09:49:15 | * | kniteli quit (Ping timeout: 258 seconds) |
10:01:38 | * | kniteli joined #nimrod |
10:06:53 | * | kniteli quit (Ping timeout: 258 seconds) |
10:08:22 | * | vendethiel quit (Ping timeout: 240 seconds) |
10:10:00 | Varriount | So, I was playing around with powershell script parameters today. The approach is very... interesting. |
10:10:07 | * | vendethiel joined #nimrod |
10:11:21 | * | khmm joined #nimrod |
10:19:06 | * | kniteli joined #nimrod |
10:20:40 | gokr | dom96: The 0.9.6 binary from the site doesn't have MSVCR100.DLL in it, I needed to suck that down separately |
10:20:44 | gokr | For Aporia. |
10:31:35 | * | vendethiel quit (Ping timeout: 265 seconds) |
10:35:10 | * | bouliiii quit (Quit: Page closed) |
10:57:29 | * | kniteli quit (Ping timeout: 258 seconds) |
11:01:27 | * | vendethiel joined #nimrod |
11:06:55 | * | q66[lap] quit (Read error: Connection reset by peer) |
11:07:36 | * | q66[lap] joined #nimrod |
11:09:22 | * | kniteli joined #nimrod |
11:11:00 | Varriount | gokr: Unfortunately, I don't think licensing allows distribution of MSVCR100.DLL |
11:13:09 | * | bjz quit (Ping timeout: 265 seconds) |
11:21:57 | * | vendethiel quit (Ping timeout: 240 seconds) |
11:22:20 | * | bjz joined #nimrod |
11:25:47 | * | vendethiel joined #nimrod |
11:46:00 | * | ARCADIVS quit (Quit: ARCADIVS) |
11:47:17 | * | vendethiel quit (Ping timeout: 264 seconds) |
11:49:16 | * | vendethiel joined #nimrod |
11:53:42 | gokr | ah ok |
11:54:38 | gokr | Damn I ... truly despise windows. I mean... ok, so I want to set the PATH var. control panel->system->advanced->find it->edit it in a tiny textbox-> save, save, apply, apply blabla. |
11:55:20 | gokr | And completion in the command prompt? Why is that disabled out-of-the-box on win7? And finding it... aargh, deep down in the registry. sigh. |
11:55:30 | gokr | Sorry for the rant. |
12:10:52 | * | vendethiel quit (Ping timeout: 240 seconds) |
12:12:44 | * | vendethiel joined #nimrod |
12:12:46 | * | Araq0 joined #nimrod |
12:13:24 | Araq0 | gokr: just install "Rapid Environment Editor" and a better terminal ... |
12:14:01 | Araq0 | though it's not yet clear what better terminal means, the ones I tried are too buggy ... ;-) |
12:14:36 | Araq0 | well there is always powershell |
12:14:51 | gokr | I know, I haven't read up on all that stuff. |
12:15:09 | gokr | I just feel that... it could be slightly smoother out of the box. Win7 is not THAT old. |
12:15:38 | gokr | I mean copy paste in the command prompt. aaaargh. |
12:16:48 | Araq0 | yeah the defaults are crap |
12:17:57 | * | BitPuffin joined #nimrod |
12:21:46 | Araq0 | I hope they finally throw cmd.exe away for windows 10, but I doubt it |
12:22:34 | Araq0 | on the other hand, cmd.exe supports the UP/DOWN keys out of the box for every program no gnu readline library crap |
12:27:22 | gokr | You really don't like Linux/Unix do you? :) |
12:28:10 | * | BitPuffin quit (Ping timeout: 250 seconds) |
12:30:31 | Araq0 | it's barbaric |
12:31:01 | Araq0 | and the creators agree with me and came up with Plan 9 |
12:31:17 | gokr | And that's better? |
12:31:28 | Araq0 | for them |
12:33:14 | Araq0 | I consider everything that builds upon *untyped* one way interprocess communication barbaric |
12:33:17 | * | vendethiel quit (Ping timeout: 240 seconds) |
12:36:24 | * | BitPuffin joined #nimrod |
12:41:43 | Araq0 | btw how do I even set environment vars permanently in unix? .bashrc only affects newly created terminals |
12:46:04 | Araq0 | never mind, found it, it's /etc/profile |
12:50:34 | * | dom96_ quit (Ping timeout: 258 seconds) |
12:50:52 | * | vendethiel joined #nimrod |
12:52:59 | gokr | Is there code somewhere to convert "c:\foo\bar" to "/c/foo/bar" etc? Probably not, just realized it could be somewhere. |
12:53:18 | gokr | It was easy to hack of course, just curious |
12:57:47 | * | BitPuffin quit (Ping timeout: 245 seconds) |
13:02:15 | Araq0 | you can use a cygwin shell to get that feature |
13:02:40 | gokr | I am calling scp from Nim - on a windows box with msysgit installed. |
13:03:00 | gokr | And scp in msysgit wants those kinds of paths. Its working and all, just curious if I could have reused something |
13:03:48 | Araq0 | are you sure about that? usually the ported software at least knows about windows' paths |
13:04:08 | Araq0 | except when it's cygwin ... |
13:05:09 | gokr | Well, I presume the git distro for windows is some kind of cygwinish thingy, I dunno. |
13:05:13 | gokr | But now it works. |
13:05:34 | Araq0 | my git understands \ |
13:05:46 | gokr | I am talking about scp. |
13:05:51 | gokr | Which is included. |
13:08:03 | Araq0 | maybe try putty's pscp |
13:08:57 | * | BitPuffin joined #nimrod |
13:08:57 | gokr | It works now. And git I need anyway. |
13:10:37 | Araq0 | putty is a useful addition to git anyway :P |
13:10:57 | gokr | yeah, I am just sick of fiddling with this. |
13:11:08 | gokr | It worked fine with rsync on Linux/OSX. Then Windows... argh. |
13:11:17 | gokr | So gave up and thought ok, curl then... |
13:11:29 | gokr | Then realized that download fine, upload? Not so fine. |
13:11:53 | gokr | Bah, so then ... scp. Sure, I can't delete a file, but I don't care. |
13:12:43 | * | dom96_ joined #nimrod |
13:12:49 | gokr | Either way its in a conf file so... one should be able to use whatever. |
13:13:07 | dom96_ | Araq0: Windows 10 will include significant improvements to cmd.exe |
13:13:23 | gokr | Did they skip 9? |
13:13:27 | gokr | Or did I miss 9? |
13:13:32 | * | vendethiel quit (Ping timeout: 255 seconds) |
13:13:33 | dom96_ | http://arstechnica.com/information-technology/2014/09/windows-10-command-prompt-finally-gets-dragged-into-the-21st-century/ |
13:13:37 | dom96_ | They skipped 9. |
13:13:44 | gokr | Ha! cool subject line. |
13:13:57 | gokr | Catching up with OSX :) |
13:14:12 | Araq0 | too much code uses version.startsWith("9") # win 95 or 98 |
13:14:22 | Araq0 | so they had to skip version 9 |
13:14:23 | gokr | Ah, right, I read that |
13:14:41 | EXetoC | -.- |
13:15:09 | EXetoC | dom96_: powershell isn't a separate thing? you can't use that all the time? |
13:15:42 | * | vendethiel joined #nimrod |
13:15:50 | dom96_ | EXetoC: hrm? |
13:16:13 | dom96_ | PowerShell doesn't make copying stuff from the command line any easier. |
13:19:26 | Araq0 | dom96_: what?! |
13:20:02 | Araq0 | dom96_: powershell comes with its own terminal |
13:26:22 | * | johnsoft quit (Ping timeout: 240 seconds) |
13:26:57 | * | johnsoft joined #nimrod |
13:47:50 | NimBot | dom96/jester new-async e886d22 Joe2244 [+0 ±1 -0]: Cleaned up utils.nim file, more info in description below. |
13:47:50 | NimBot | dom96/jester new-async c190f1d Joe2244 [+0 ±1 -0]: Cleaned up patterns.nim file. More info below. |
13:47:50 | NimBot | dom96/jester new-async 71b1191 Joe2244 [+0 ±1 -0]: Fixed jester.nim - removed most deprecation warnings - not all, see below. |
13:47:50 | NimBot | dom96/jester new-async 812b538 Dominik Picheta [+0 ±3 -0]: Merge pull request #17 from Kentoseth/new-async... 2 more lines |
13:56:23 | * | bouliiii joined #nimrod |
14:14:53 | * | spookley quit (Ping timeout: 272 seconds) |
14:16:10 | * | dom96 quit (Ping timeout: 272 seconds) |
14:17:10 | * | Spookley_ joined #nimrod |
14:18:26 | * | Joe_knock joined #nimrod |
14:18:55 | * | Spookley_ is now known as Spookley |
14:19:53 | * | dom96 joined #nimrod |
14:23:23 | * | Trustable quit (Quit: Leaving) |
14:29:27 | * | Spookley quit (Quit: Spookley Says Bye) |
14:34:55 | gokr | So... it seems when I use readAll(stdin) - that works fine on Linux/OSX. But not on windows |
14:35:23 | gokr | Not entirely sure why yet. |
14:35:52 | * | Joe_knock quit (Ping timeout: 240 seconds) |
14:39:00 | Araq0 | last time I checked readAll(stdin) doesn't work anywhere |
14:43:01 | * | vendethiel quit (Ping timeout: 255 seconds) |
14:43:05 | gokr | It fiddles around with seek etc in the beginning there. |
14:43:13 | gokr | That might be tripping up windows. |
14:43:21 | Araq0 | exactly |
14:43:51 | gokr | Ok, so basically we should... is the readAllBuffer exported? |
14:44:27 | gokr | Ok, gotta go - but... hopefully that's the last issue before I can declare blimp working for all 3 platforms. |
14:44:31 | Araq0 | I don't really see a problem though |
14:44:41 | Araq0 | what does readAll(stdin) even mean? |
14:46:56 | gokr | Well :) |
14:47:01 | gokr | ok, later |
14:51:28 | * | Etheco joined #nimrod |
14:53:08 | * | vendethiel joined #nimrod |
14:57:37 | * | gokr_ joined #nimrod |
14:57:40 | * | johnsoft quit (Ping timeout: 250 seconds) |
14:58:33 | * | johnsoft joined #nimrod |
15:05:12 | * | Araq0 quit (Quit: Page closed) |
15:07:52 | onionhammer | ARaq0 they're upgrading the default cmd a lot in 10 i've heard |
15:09:23 | * | darkf quit (Quit: Leaving) |
15:10:16 | onionhammer | nm late to the party ;) |
15:10:37 | * | BlaXpirit quit (Read error: Connection reset by peer) |
15:11:18 | * | BlaXpirit joined #nimrod |
15:12:53 | onionhammer | Varriount afaik you can redistribute msvcr100.dll etc numbered DLLs, just not the debug versions of the dlls |
15:13:03 | onionhammer | if i recall |
15:14:20 | onionhammer | those files are meant to be redist dll |
15:14:22 | onionhammer | s |
15:14:32 | onionhammer | http://msdn.microsoft.com/en-us/library/ms235299.aspx |
15:15:24 | onionhammer | http://support.microsoft.com/kb/326922 |
15:15:41 | * | vendethiel quit (Ping timeout: 272 seconds) |
15:17:31 | * | vendethiel joined #nimrod |
15:17:40 | * | dom96_ quit (Ping timeout: 246 seconds) |
15:30:48 | * | kniteli quit (Ping timeout: 258 seconds) |
15:47:14 | * | gokr_ quit (Remote host closed the connection) |
15:47:29 | * | gokr_ joined #nimrod |
16:04:30 | * | bjz quit (Read error: Connection reset by peer) |
16:04:52 | * | bjz joined #nimrod |
16:05:41 | * | gokr_ quit (Ping timeout: 258 seconds) |
16:06:53 | * | gokr_ joined #nimrod |
16:33:04 | * | mko joined #nimrod |
16:39:00 | * | bjz quit (Read error: Connection reset by peer) |
16:39:13 | * | bjz joined #nimrod |
16:47:24 | * | Matthias247 joined #nimrod |
16:50:42 | gokr | Araq: The piping worked if I hacked my own readAll that is a copy of readAllBuffer |
16:50:56 | gokr | Hmmm, perhaps readAllBuffer was exported, not sure. |
16:51:40 | gokr | No, it wasn't |
16:51:48 | * | nande joined #nimrod |
16:51:53 | gokr | So... that should be an issue to file |
17:29:35 | * | khmm quit (Ping timeout: 255 seconds) |
17:43:01 | * | nd` joined #nimrod |
17:43:05 | * | nd` left #nimrod ("Leaving") |
17:53:23 | * | gokr_ quit (Ping timeout: 272 seconds) |
17:53:48 | * | gokr_ joined #nimrod |
18:01:03 | * | q66 joined #nimrod |
18:03:43 | * | brson joined #nimrod |
18:06:22 | * | bouliiii quit (Ping timeout: 246 seconds) |
18:19:00 | * | Visaoni quit (Read error: Connection reset by peer) |
18:22:47 | * | dom96_ joined #nimrod |
18:26:14 | * | AMorpork is now known as AFKMorpork |
18:27:48 | ldlework | In using c2nim, I have lines in my .h's like "TCODLIB_API char *TCOD_strdup(const char *s);" It doesn't like the TCODLIB_API token which is defined as: https://gist.github.com/dustinlacewell/1c200c3f47a37220afd6 |
18:28:00 | ldlework | If I delete all the "TCODLIB_API" tokens it converts successfully |
18:28:15 | ldlework | Is there anyway to do something to the source or c2nim so I don't have to remove all these tokens? |
18:29:17 | EXetoC | the manual should hint towards defining those symbols with #def, usually to nothing |
18:29:22 | * | vendethiel quit (Ping timeout: 240 seconds) |
18:29:32 | ldlework | Okay |
18:30:49 | EXetoC | and there's that c2nim article somewhere |
18:34:05 | * | vendethiel joined #nimrod |
18:39:47 | * | gokr_ quit (Ping timeout: 258 seconds) |
18:39:48 | * | shodan45 joined #nimrod |
18:40:32 | * | Matthias247 quit (Read error: Connection reset by peer) |
18:41:12 | * | perturbation joined #nimrod |
18:41:33 | * | gokr_ joined #nimrod |
18:42:29 | perturbation | fowl: Just FYI - I made some post-bigbreak fixes to your nimrod-sfml package (mostly case sensitivity stuff) |
18:42:43 | perturbation | assuming you're fowlmouth - if not, please disregard -.-' |
18:43:27 | perturbation | !seen fowlmouth |
18:43:27 | NimBot | fowlmouth was last seen on Thu Nov 13 02:02:13 2014 quitting with message: Read error: Connection reset by peer |
18:45:00 | ldlework | It doesn't seem to do anything. |
18:45:02 | ldlework | EXetoC: |
18:45:26 | ldlework | EXetoC: the docs say that existing #ifdef defines should be converted to where clauses in the nim |
18:45:37 | ldlework | But that doesn't solve nim refusing to parse the rest of the document |
18:46:20 | EXetoC | you still have to do something like #ifdef C2NIM\n#def TCODLIB_API\n#def....\n#endif I think |
18:48:22 | EXetoC | but chances are other issues will appear |
18:50:20 | * | gour quit (Disconnected by services) |
18:50:21 | * | gour_ joined #nimrod |
18:51:12 | ldlework | yeah it literally doesn't affect it at all |
18:51:33 | ldlework | https://gist.github.com/dustinlacewell/d671a72de82f2ff43e6e |
18:51:36 | ldlework | fails on line 10 |
18:51:44 | EXetoC | there's no direct link to the c2nim article anywhere? |
18:52:08 | EXetoC | def, not define |
18:53:00 | EXetoC | the def directive will be processed by c2nim, and not by a C preprocessor, hence the associated guard |
18:53:00 | ldlework | EXetoC: that worked |
18:53:02 | ldlework | nice |
18:53:17 | ldlework | http://nimrod-lang.org/c2nim.html |
18:53:20 | ldlework | doesn't mention #def at all |
18:53:57 | EXetoC | it does. the article covers more things though |
18:54:17 | ldlework | I don't see #def mentioned |
18:54:23 | ldlework | oh there it is |
18:54:32 | ldlework | thanks EXetoC |
18:54:46 | ldlework | Its too bad I can't provide this globally |
18:54:51 | ldlework | since I want to convert just about 100 files |
18:54:57 | ldlework | and so I will have to add these three lines to 100 files |
18:56:48 | EXetoC | there's the cmerge tool in the nim distribution, but it's a little inconvenient to merge C files rather than headers |
18:56:57 | EXetoC | so I merged the headers manually one time |
18:58:22 | ldlework | EXetoC: what do you mean merged, just concatenate them together |
18:59:00 | EXetoC | yes |
18:59:30 | ldlework | crazy |
19:02:27 | EXetoC | a separate file would be convenient, but I think you can specify all these things as program arguments |
19:02:48 | * | AFKMorpork is now known as AMorpork |
19:03:16 | EXetoC | I guess not, but the header flag might be relevant |
19:05:44 | ldlework | EXetoC: c2nim doesn't like the :1 stuff here https://gist.github.com/dustinlacewell/f57863943c5df804ce78 |
19:10:26 | * | will joined #nimrod |
19:13:44 | * | Mat4 joined #nimrod |
19:13:49 | Mat4 | hi all |
19:15:11 | EXetoC | hi |
19:15:19 | EXetoC | ldlework: yeah, we don't have that |
19:17:13 | ldlework | woah it just worked on the whole shebang |
19:17:28 | EXetoC | and that? you converted it to a single char? |
19:17:57 | * | vendethiel quit (Ping timeout: 240 seconds) |
19:18:46 | ldlework | EXetoC: a single file, you mean? |
19:20:28 | * | vendethiel joined #nimrod |
19:21:06 | EXetoC | the bitfields |
19:22:33 | ldlework | I just deleted the :1 |
19:22:46 | ldlework | lol |
19:24:43 | EXetoC | the size of the original struct will be 1 byte so it won't be binary compatible |
19:25:26 | * | gour_ is now known as gour |
19:27:48 | ldlework | I have a feeling that this is hopeless |
19:29:44 | EXetoC | it's a very boring process for large inputs, but it's often better than manually creating bindings |
19:30:49 | EXetoC | *quicker |
19:32:42 | ldlework | https://gist.github.com/dustinlacewell/8110d9389f2063b8a619 on the middle line |
19:32:48 | ldlework | any idea what it is complaining about? |
19:35:19 | ldlework | Who can I pay to do this nim binding? :) |
19:40:01 | EXetoC | is 'type' the issue? if so, escape it (`type`), because it's a keyword |
19:41:56 | EXetoC | there's this https://github.com/Vladar4/libtcod-nim, but it hasn't been updated in some time, but some issues can be fixed with nimfix |
19:42:48 | EXetoC | the plan has been to update all the packages, but that one hasn't been touched apparently |
19:43:10 | * | vendethiel quit (Ping timeout: 255 seconds) |
19:43:16 | ldlework | There are many issues |
19:43:20 | ldlework | And I just started deleting things |
19:43:34 | ldlework | But I probably just don't know enough to convert the whole time |
19:43:48 | ldlework | and yeah that package is from before bigbreak |
19:43:51 | ldlework | It doesn't work at all anymore |
19:44:08 | ldlework | s/whole time/whole thing |
19:44:21 | EXetoC | manual intervention is usually necessary |
19:44:22 | ldlework | I would pay a reasonable amount if someone wanted to do the conversion though |
19:44:36 | EXetoC | it's up to you if you think it's faster to rewrite it |
19:44:53 | ldlework | EXetoC: I did consider maybe just binding what I need as I need it |
19:45:02 | ldlework | I just want to start writing a game :( |
19:45:17 | ldlework | #rust-gamedev makes me so jealous lol |
19:45:31 | * | vendethiel joined #nimrod |
19:47:46 | ldlework | Do we know who Vladar4 is? |
19:53:20 | ldlework | oh well |
20:00:13 | EXetoC | you can pay me if you want. I'm free in about 2 hours |
20:00:17 | EXetoC | or do you want to bind it selectively? |
20:00:39 | ldlework | EXetoC: have you seen the scope of the library? Do you have an offer? |
20:00:45 | ldlework | I mean its not ginormous |
20:01:05 | ldlework | its like 3k lines |
20:03:51 | EXetoC | *shrug* |
20:04:14 | ldlework | $50? $100? |
20:05:28 | ldlework | EXetoC: think about it, I have a meeting |
20:05:31 | ldlework | bb in about an hour |
20:11:07 | Araq | hi ldlework, what's the problem with c2nim? |
20:11:23 | EXetoC | generous offer. it shouldn't take very long |
20:12:15 | Araq | I can implement a "load #def stuff from file" feature |
20:12:26 | Araq | it's been on my todo for some time |
20:12:31 | EXetoC | but he used --header for that. is it not sufficient |
20:13:21 | Araq | --header is stupid |
20:13:26 | Araq | he should use --dynlib |
20:14:24 | EXetoC | I thought he had #def directives in a separate file and then used headers. does that not work? |
20:14:49 | Araq | how should it? c2nim doesn't follow #include |
20:15:07 | Araq | nor does it provide an #incl |
20:15:25 | EXetoC | I don't know what he was doing then |
20:15:46 | EXetoC | he might have just thought it worked |
20:16:46 | * | Trustable joined #nimrod |
20:16:48 | EXetoC | Araq: what about using program args for all that? |
20:19:40 | EXetoC | or allow for both options |
20:20:51 | Araq | meh command args are always affected by stupid quoting rules |
20:21:24 | EXetoC | escaping isn't so hard |
20:21:33 | Araq | it is |
20:25:18 | Araq | I once matched parts of URLs with a regex and this regex had to be in an xml file |
20:25:27 | Araq | it made me mad |
20:25:45 | EXetoC | :E |
20:25:49 | EXetoC | lovely |
20:27:22 | EXetoC | nice fixing spree |
20:28:14 | Araq | what works much better than quoting is indentation |
20:28:20 | Araq | .. code-block:: nim |
20:28:26 | Araq | echo "nim code here" |
20:28:40 | Araq | *that* is far superior |
20:29:04 | EXetoC | yeah |
20:34:46 | Araq | so ... I'm special casing the identifier 'it' in the language ... |
20:34:59 | Araq | any objections? |
20:35:59 | Araq | reason for it: https://github.com/Araq/Nimrod/issues/1337 |
20:37:38 | Araq | the alternative is to add top-level 'mixin' statements to the language |
20:39:20 | Varriount | Araq: What would the 'it' statement do? |
20:39:50 | Araq | Varriount: it doesn't do anything |
20:40:12 | Araq | the problem is when you have: |
20:40:44 | Araq | proc gen[T](x: T) = sequtils.mapit(x, it * 2) |
20:41:07 | Araq | the compile tries to bind 'it' in the symbol lookup pass for generics |
20:41:13 | Araq | but doesn't find any |
20:41:29 | Araq | and it cannot expand 'mapIt' either since that can be overloaded |
20:41:47 | Araq | and for generics the real type T is known only later |
20:43:57 | Varriount | So, essentially, the compiler doesn't have enough information to expand mapIt? |
20:44:08 | Araq | yes |
20:44:33 | Varriount | So why not do what you said in the comment, and expand it later? |
20:44:39 | * | gour is now known as gour__ |
20:46:21 | Araq | we do that but by then it's too late |
20:46:54 | Varriount | Why? |
20:50:03 | * | gour__ is now known as gour |
20:52:30 | Araq | the compiler does some sanity checking for generics |
20:53:26 | Araq | in other words it performs symbol lookup |
20:53:46 | Araq | note that this is done for the generic itself, not its instantation |
20:54:04 | Araq | so it looks up 'it', doesn't find an 'it' and fails |
20:54:45 | Araq | it looks up 'sequtils.mapIt' too and this works, but it cannot expand it to see the injected 'it' |
20:55:10 | Varriount | Wait a sec... why can't you expand the template to use the type 'T' |
20:55:43 | Varriount | Just have a placeholder type, or something |
20:57:16 | Araq | template foo(x: int) = ... # injects |
20:57:29 | Araq | template foo(x: float) = # doesn't inject |
20:57:46 | Araq | proc ingeneric[T](x: T) = foo(x) # well? |
20:58:11 | Varriount | Isn't that what immediate templates are for? |
20:59:09 | Araq | yeah |
20:59:16 | Araq | but mapIt is not immediate |
21:00:09 | Araq | it's actually a very hard problem |
21:00:27 | Araq | dom96's => macro also does symbol injection I think |
21:01:28 | Araq | but that's immediate |
21:01:50 | Varriount | What about allowing the generic sanity check to peek at all the possible overloads, and the symbols they inject? |
21:02:16 | Araq | that almost works |
21:02:38 | Araq | but to "peek" it also needs to run macros which can inject non-declaratively |
21:03:05 | Varriount | This is like going down a rabbit hole. |
21:03:11 | Araq | so it ends up expanding *all* macros at the same time without considering types |
21:03:21 | * | dom96_ quit (Ping timeout: 255 seconds) |
21:04:04 | Varriount | And macros can affect compile time vars... |
21:04:21 | Araq | well zahary has a good solution |
21:04:52 | Araq | he thinks we should screw this symbol lookup pass and perform it later for instantiation |
21:05:17 | Araq | but this is too much work to change now and the consequences are not obvious either |
21:06:30 | Araq | what we can do is enforce a prefix like !it to mark injected symbols at callsite |
21:07:12 | Araq | or maybe allow (let it) |
21:07:31 | Araq | mapIt(sequence, (let it) * 3) |
21:07:34 | Varriount | Araq: Uh, I was about to voice the same solution as zahary. |
21:08:20 | Araq | I mean, symbol injection IS rare and quite hacky anyway |
21:10:20 | Varriount | Also, remind me why mixin doesn't work? Is it because the identifier is only in the template call? |
21:10:31 | Araq | yes |
21:10:37 | Araq | this works: |
21:10:46 | Araq | proc gen[T](x: T) = |
21:10:49 | Araq | mixin it |
21:10:58 | Araq | mapIt(..., it * 3) |
21:11:14 | Araq | hence my idea of global 'mixin' |
21:11:26 | Araq | in sequtils there can be a top level |
21:11:29 | Araq | mixin it |
21:11:46 | Araq | and then that's exported and again, things work |
21:12:00 | Araq | (unless you use from sequtils import mapIt ... *cough*) |
21:14:50 | Araq | well I still prefer to special case 'it' in the compiler, this means it becomes keyword-like. This discourages any symbol injection unless you name it 'it' |
21:15:06 | Varriount | Araq: So... why not just let mixin be used in the generic body? |
21:15:16 | Varriount | Isn't that what it was for? |
21:15:46 | Araq | that's a gotcha for newbies |
21:16:31 | Varriount | And !it isn't? |
21:17:01 | Araq | yeah |
21:17:12 | Araq | but this isn't my proposal |
21:17:24 | Araq | my proposal is to special-case 'it' |
21:18:37 | Varriount | And what happens when someone uses 'it' for something other than it's intended purpose? How is 'it' different from 'mixin'? |
21:18:57 | Mat4 | good question |
21:19:07 | Araq | that it simply works |
21:19:47 | Varriount | And what if the macro or template has more than one identifier to inject? |
21:20:33 | Araq | well then you need a mixin :P |
21:20:54 | Araq | but again |
21:21:09 | Araq | symbol injection is not something we should encourage too much |
21:21:21 | Varriount | Also, this depends on the user using the identifier 'it' - if you're counting on them not knowing enough to use 'mixin' properly, how do you know they will know enough to use 'it'? |
21:21:42 | Araq | no, that the point |
21:21:54 | Araq | the user uses the existing mapIt etc. and it works |
21:22:33 | Araq | he writes his own and uses 'it' because it's the convention -- and it works |
21:22:59 | Araq | he writes a template that injects 2 symbols and then he needs to learn about these details |
21:23:14 | Araq | but by then he should reconsider his design |
21:23:21 | Araq | IMHO |
21:25:46 | Varriount | Araq: So... it will be the original writer of the template to use 'it' for the first injected symbol? |
21:26:01 | Araq | yes. |
21:26:08 | Varriount | *it will be the responsability |
21:27:00 | Araq | however we can also deprecate the sequtils.foo*It templates |
21:27:21 | Araq | or document the 'it' gotcha really well ... |
21:27:50 | Araq | but I quite like them :-/ |
21:28:53 | Varriount | Araq: I'm sorry, but I really don't like this idea. It anticipates too much what both the user and the writer of the template are going to do, and adds another bit of complexity into a situation that can already be solved by 'mixin' |
21:29:36 | Araq | well for me 'mapIt' is all about convenience |
21:30:00 | Araq | and 'mixin it' in a generic is a gotcha and not convenient |
21:30:56 | Varriount | Araq: This also assumes that the user of the template and the writer of the template are not the same people. |
21:31:15 | Araq | well that's exactly what happened |
21:31:27 | Araq | I got 3 bug reports about this gotcha |
21:31:37 | * | johnsoft quit (Ping timeout: 240 seconds) |
21:31:44 | Araq | I'm not really assuming anything here |
21:31:47 | * | johnsoft joined #nimrod |
21:31:52 | Araq | it happened in the real world |
21:32:26 | Araq | also I'm looking for a good compromise for version 1.0 |
21:32:37 | Araq | better solutions can be tried later |
21:33:15 | Varriount | What about improving the error message? |
21:34:02 | Araq | that helps but ultimately 'mixin it' feels like babysitting the compiler |
21:35:32 | Varriount | Araq: Are you sure better solutions can be tried later? This change could permanently make 'it' a special identifier. |
21:36:06 | Araq | as I said, we can always introduce a toplevel mixin statement for this |
21:36:27 | * | dom96_ joined #nimrod |
21:36:42 | Araq | we can also change symbol lookup rules in generics later and implement zahary's solution |
21:36:56 | Araq | which is fully backwards compatible ... for now |
21:37:09 | dom96_ | hello |
21:37:11 | Araq | well it's hard to say |
21:37:22 | Araq | it surely looks compatible |
21:37:42 | Varriount | I'd still rather have an error message that suggests that the user add a mixin statement when the compiler detects that it doesn't have enough information about the possible identifiers. |
21:38:54 | Varriount | Have the user learn from their mistakes. |
21:39:06 | Mat4 | hi dom96 |
21:39:14 | dom96_ | hey Mat4 |
21:39:28 | Araq | def-: any opinion? it's your bug report after all ... :P |
21:40:17 | dom96_ | Araq: IMO special casing 'it' is a bad "quick fix" |
21:40:45 | Araq | nah, it's 1 line of code in the compiler. that's makes it a good quick fix :P |
21:41:08 | Araq | but it might be questionable design |
21:41:10 | dom96_ | I would go as far as saying that these *It templates are a hack which works around the fact that => isn't usable enough. |
21:41:46 | Araq | I have a fix for => though |
21:42:44 | dom96_ | It would be nice if the compiler could rewrite x.map(x => echo x) into a for loop. |
21:43:17 | Araq | but it can |
21:45:18 | dom96_ | ok, so how will you improve =>? |
21:45:35 | * | gour quit (Quit: WeeChat 1.0.1) |
21:45:48 | Araq | change its precedence and make it right-associative |
21:46:09 | Araq | in fact, I plan to do this for every operator symbol that ends in '>' |
21:46:38 | Araq | so => is not like == anymore, but an arrow |
21:46:53 | dom96_ | ok |
21:47:14 | dom96_ | That's not going to help with type inference though. |
21:48:24 | Araq | well the 'auto' as return type will be fixed too |
21:49:18 | def- | Araq: i don't like the idea of special-casing "it". As dom96_ said, I used *It templates because of limitations in =>. |
21:49:44 | * | dom96_ quit (Quit: Leaving) |
21:50:01 | * | dom96_ joined #nimrod |
21:50:03 | Araq | def-: ok, but the problem is more fundamental than that |
21:51:14 | Araq | => itself does symbol injection and works because it's an immediate |
21:51:41 | dom96_ | Perhaps we should implement => in the compiler? |
21:52:13 | Araq | I still prefer (a,b :: a+b) as a syntax over => then |
21:52:34 | Varriount | dom96: But then you deny all other library writers the chance to use => |
21:52:48 | dom96_ | Varriount: Why would they need to? |
21:53:22 | dom96_ | Araq: Why? That's Haskell's "type is" operator. |
21:53:22 | Varriount | dom96: For macros, templates, and procedues, same as you. |
21:53:58 | dom96_ | Varriount: I'm not sure what you mean. |
21:54:14 | dom96_ | Are you saying they won't be able to write their own `=>`? |
21:54:32 | Varriount | dom96: If you implement it as a compiler operator, yes. |
21:54:47 | dom96_ | Varriount: It would end up in system.nim anyway, preventing its reuse. |
21:54:58 | Varriount | dom96: Exactly! |
21:55:38 | dom96_ | oh, so you're talking about people who would like to reimplement the whole stdlib? |
21:56:12 | EXetoC | REWRITE REWRITE REWRITE! |
21:56:37 | Varriount | dom96: Not reimplementing the stdlib, but implementing their own libraries and frameworks. |
21:56:56 | dom96_ | bbl |
21:57:25 | Varriount | How does C++ do precedence? |
21:57:37 | Varriount | I mean, with regards to operators. |
21:58:03 | Varriount | (Wait, can you even define custom operators in C++?) |
22:01:40 | Araq | Varriount: no you can't |
22:01:40 | * | dom96_ quit (Read error: Connection reset by peer) |
22:01:57 | Araq | Scala provides this feature and does it quite like Nim |
22:04:43 | perturbation | Oh dear: "C++ has no native support for adding new operators, but this article shows how, with macros and some clever overloading, it is possible to easily add your own anyway." |
22:05:11 | * | Joe_knock joined #nimrod |
22:09:36 | onionhammer | Varriount... i think its worthwhile. => means lambda to so many people |
22:10:01 | onionhammer | i wouldnt want some library overriding that |
22:10:57 | Varriount | *grumble* |
22:17:29 | Mat4 | ciao |
22:17:42 | * | Mat4 left #nimrod (#nimrod) |
22:21:31 | * | dom96_ joined #nimrod |
22:25:34 | * | BlaXpirit quit (Quit: Quit Konversation) |
22:25:49 | * | BlaXpirit joined #nimrod |
22:28:47 | Araq | well if nobody likes my hack ... I won't do it |
22:29:10 | Araq | but the current situation sucks |
22:31:52 | * | Joe_knock quit (Ping timeout: 240 seconds) |
22:49:40 | * | bouliiii joined #nimrod |
22:50:05 | bouliiii | For custom operators, would it be possible to get user defined precedence as in SML or haskell? |
22:51:01 | Araq | bouliiii: it's possible, but it's horrible |
22:51:14 | bouliiii | becaus it makes things too much non context free? |
22:51:27 | Araq | Haskell performs precedence rewriting after types have been figured out afaict |
22:51:47 | Araq | bouliiii: yes. |
22:53:06 | bouliiii | Interesting than ocaml does not do it and has ocamlp4 (similar to nim macros). Seems they also ended up to the same conclusion :-( |
22:54:21 | bouliiii | I was playing with mlton yesterday. I am not sure how they implement used defined precedence here |
23:00:32 | Araq | bouliiii: check out #! strongSpaces for a more flexible approach |
23:01:00 | Araq | it's a special parsing mode that IMO works best for these things |
23:05:17 | * | def- quit (Ping timeout: 264 seconds) |
23:07:21 | * | johnsoft quit (Ping timeout: 258 seconds) |
23:07:39 | * | johnsoft joined #nimrod |
23:08:07 | * | boydgreenfield joined #nimrod |
23:08:12 | * | vendethiel quit (Ping timeout: 250 seconds) |
23:08:38 | * | saml quit (Quit: Leaving) |
23:12:19 | * | vendethiel joined #nimrod |
23:15:07 | bouliiii | Araq: hahaha. Very nice and naughty at the same time :-) |
23:25:38 | EXetoC | uh oh, signature mismatch hell again :) |
23:35:16 | * | kniteli joined #nimrod |
23:52:01 | * | Etheco quit (Quit: Leaving) |
23:57:34 | boydgreenfield | Is the warning in the docs about Channels being slow still current? / Can anyone point me to a good example of current “Nim idiomatic” threading/concurrency with the new threadpool implementation? Having a bit of trouble deciding what pattern to use by default here. Thx! |
23:59:46 | * | Matthias247 joined #nimrod |