00:00:20 | * | Matthias247 quit (Read error: Connection reset by peer) |
00:01:10 | * | davidhq joined #nim |
00:05:00 | * | davidhq quit (Client Quit) |
00:07:37 | * | greshick joined #nim |
00:08:09 | * | greshick quit (Client Quit) |
00:13:15 | * | davidhq joined #nim |
00:18:01 | * | BitPuffin joined #nim |
00:21:32 | * | davidhq quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
00:28:44 | * | gunn joined #nim |
00:31:03 | * | davidhq joined #nim |
00:43:39 | * | sampwing quit (Ping timeout: 252 seconds) |
00:47:33 | * | sampwing joined #nim |
00:48:25 | * | BlaXpirit quit (Quit: Quit Konversation) |
01:07:40 | * | davidhq quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
01:09:04 | * | endou______ quit (Ping timeout: 265 seconds) |
01:10:09 | * | CARAM__ quit (Ping timeout: 276 seconds) |
01:11:08 | * | davidhq joined #nim |
01:11:52 | * | davidhq quit (Client Quit) |
01:12:46 | * | Demon_Fox joined #nim |
01:13:09 | * | endou______ joined #nim |
01:14:27 | * | davidhq joined #nim |
01:14:40 | * | nande quit (Remote host closed the connection) |
01:15:14 | * | davidhq quit (Client Quit) |
01:21:51 | * | AtomicBool joined #nim |
01:22:04 | AtomicBool | when will nim be in the benchmarks game? |
01:24:05 | * | CARAM__ joined #nim |
01:34:25 | def- | AtomicBool: how do you get in there? |
01:35:55 | * | davidhq joined #nim |
01:36:13 | * | nande joined #nim |
01:36:25 | * | davidhq quit (Client Quit) |
01:38:09 | * | davidhq joined #nim |
01:38:11 | * | davidhq quit (Client Quit) |
01:40:53 | def- | I read somewhere that they don't want to add languages, so I didn't bother writing the benchmarks in Nim |
01:44:31 | * | dts|pokeball quit (Ping timeout: 256 seconds) |
01:46:52 | * | fizzbooze joined #nim |
01:48:13 | AtomicBool | really? |
01:48:15 | AtomicBool | where? |
01:49:10 | * | Sornaensis quit (Max SendQ exceeded) |
01:50:16 | * | Sornaensis joined #nim |
01:50:39 | def- | http://benchmarksgame.alioth.debian.org/play.html#languagex |
01:51:13 | def- | They even mention Nim there now, oh |
01:51:27 | def- | I'll try to do the measurements I guess |
01:54:21 | * | dts|pokeball joined #nim |
01:57:31 | * | gsingh93 quit (Quit: Connection closed for inactivity) |
02:01:59 | def- | there are a few people working on nim benchmarks though |
02:04:16 | * | brson quit (Quit: leaving) |
02:09:51 | * | Demon_Fox quit (Ping timeout: 250 seconds) |
02:13:45 | * | d3m1gd quit (Ping timeout: 250 seconds) |
02:21:31 | * | Demon_Fox joined #nim |
02:22:52 | * | akiradeveloper joined #nim |
02:22:56 | akiradeveloper | cannot evaluate at compile time: EINTR ?? what's is this? |
02:25:02 | flaviu | akiradeveloper: You're trying to run code that takes too long, and the compiler is stopping you from hanging it. |
02:25:33 | EXetoC | it's not the fact that it's a symbol taken from a C header then? |
02:25:48 | EXetoC | EINTR* {.importc, header: "<errno.h>".}: cint |
02:26:04 | akiradeveloper | yes. in posix module |
02:26:53 | * | Demon_Fox quit (Ping timeout: 265 seconds) |
02:26:56 | akiradeveloper | imported symbol can't be used in case statement? |
02:27:14 | flaviu | C FFI doesn't work at compile time. |
02:27:47 | * | sampwing quit (Ping timeout: 252 seconds) |
02:29:36 | * | darkf joined #nim |
02:29:40 | * | Demon_Fox joined #nim |
02:31:31 | akiradeveloper | I see. thanks |
02:33:47 | * | VinceAddons quit (Read error: Connection reset by peer) |
02:52:59 | * | fizzbooze quit (Quit: WeeChat 1.1.1) |
02:58:39 | * | fizzbooze joined #nim |
02:58:50 | * | Demon_Fox quit (Quit: Leaving) |
03:04:25 | * | fizzbooze quit (Quit: WeeChat 1.1.1) |
03:04:38 | * | fizzbooze joined #nim |
03:05:08 | * | Demon_Fox joined #nim |
03:09:31 | * | Demon_Fox quit (Ping timeout: 256 seconds) |
03:10:36 | * | Demon_Fox joined #nim |
03:12:43 | * | BitPuffin quit (Ping timeout: 264 seconds) |
03:29:21 | gmpreussner|work | i just discovered term rewriting macros. holy crap are those awesome :D |
03:30:19 | gmpreussner|work | now i have to unlearn C++ expression templates |
03:30:24 | * | sampwing joined #nim |
03:35:31 | * | hguux__ quit () |
03:35:47 | * | hguux__ joined #nim |
03:36:22 | * | gunn_ joined #nim |
03:36:39 | * | EXetoC quit (Ping timeout: 264 seconds) |
03:36:58 | * | nande quit (Read error: Connection reset by peer) |
03:37:58 | * | gunn quit (Ping timeout: 252 seconds) |
03:39:45 | flaviu | Araq, Varriount_, dom96: More spam on the forum |
03:44:31 | def- | flaviu: every night the same spam even |
03:54:18 | Demos | gmpreussner|work, I know right, yet another nim feature where you learn it and thing "well OBVIOUSLY that is how this should be done" |
04:01:21 | * | Guest51733 is now known as adam12 |
04:01:46 | * | FusionGaming quit (Ping timeout: 255 seconds) |
04:06:46 | * | FusionGaming joined #nim |
04:18:13 | def- | AtomicBool: the nim implementations i could find: https://github.com/def-/nim-benchmarksgame |
04:20:51 | * | Demon_Fox quit (Ping timeout: 246 seconds) |
04:23:17 | * | sampwing quit (Ping timeout: 252 seconds) |
04:25:51 | dts|pokeball | how come i cant see the threads im involved in on the forum and only the current ones |
04:28:22 | * | Demon_Fox joined #nim |
04:30:38 | * | akiradeveloper quit () |
04:35:33 | * | sampwing joined #nim |
04:35:56 | * | Demon_Fox quit (Ping timeout: 245 seconds) |
04:49:57 | * | adam12 quit (Ping timeout: 265 seconds) |
04:56:21 | * | adam- joined #nim |
05:15:01 | * | dapz joined #nim |
05:17:11 | * | sampwing quit (Ping timeout: 252 seconds) |
05:23:58 | * | dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
05:38:37 | * | fizzbooze quit (Quit: WeeChat 1.1.1) |
05:39:01 | * | gunn_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
05:40:15 | * | gunn joined #nim |
05:48:44 | * | Fusion_Gaming joined #nim |
05:51:13 | * | Demon_Fox joined #nim |
05:52:03 | * | FusionGaming quit (Ping timeout: 245 seconds) |
05:54:04 | * | jon____ joined #nim |
05:54:09 | jon____ | hi |
05:54:36 | def- | hi jon____ |
05:55:37 | jon____ | so if i want to learn nim the documentation availabe is sufficient ? |
05:55:54 | def- | These resources are good for learning Nim: http://nim-lang.org/learn.html |
05:56:44 | jon____ | this is a stable release yes? |
05:56:51 | dts|pokeball | jon____, no one recommends the tutorial. ive been considering writing a begginer one |
05:57:35 | jon____ | so if i want to learn the basics with the examples where would i need to look up? |
06:00:36 | def- | I actually like the tutorial, so I would say, start here: http://nim-lang.org/tut1.html |
06:05:03 | def- | still looking forward to see your beginner tutorial, dts|pokeball |
06:05:32 | * | gtrundle quit (Ping timeout: 272 seconds) |
06:07:08 | * | dapz joined #nim |
06:08:55 | * | BitPuffin joined #nim |
06:09:59 | dts|pokeball | :D |
06:11:36 | * | dts|pokeball quit (Quit: Leaving) |
06:12:05 | * | dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
06:13:34 | * | BitPuffin quit (Ping timeout: 265 seconds) |
06:13:53 | * | dtscode joined #nim |
06:18:25 | jon____ | when would the beginner tutorial come out? |
06:18:40 | * | bjz joined #nim |
06:19:47 | def- | no idea, i think it was just an idea of dts|pokeball |
06:19:58 | jon____ | hmm |
06:20:03 | * | gtrundle joined #nim |
06:20:11 | def- | do you have experience with other programming languages? |
06:20:27 | jon____ | i know a bit pf python java and c |
06:20:58 | def- | sounds like you would do fine with the existing tutorial |
06:21:13 | jon____ | thank you |
06:21:49 | jon____ | would nim work with eclipse ide or is there a saparate ide for that? |
06:22:09 | jon____ | when would Nim go stable? |
06:22:51 | * | Angry quit (Ping timeout: 244 seconds) |
06:23:19 | def- | There's the Aporia IDE. Other editors can also be used: https://github.com/Araq/Nim/wiki/Editor-Support |
06:23:26 | dtscode | i need to get my site working on it before i start the tut |
06:23:34 | def- | I haven't heard of eclipse support, no idea |
06:23:58 | jon____ | ok |
06:25:19 | def- | Nim is stable enough to use. Most changes are bug fixes. 1.0 will hopefully be out in the next months |
06:26:27 | jon____ | in most of the news which i have seen on the internet many users are talking about D,Go,Rust but there seems not too much of Nim users out there |
06:28:36 | jon____ | in the tutorial Nim part 2 is obsolete and been referred to manual will there be an update for part 2 of Nim tutorial or should i go through manual for advanced language features |
06:29:36 | * | Demos quit (Read error: Connection reset by peer) |
06:30:50 | def- | hm, i guess the manual is fine too, but it's quite big, have to read selectively |
06:34:26 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
06:39:08 | * | dapz joined #nim |
06:39:08 | * | dapz quit (Client Quit) |
06:44:36 | * | dtscode quit (Quit: ZNC - http://znc.in) |
06:45:45 | * | Demon_Fox quit (Quit: Leaving) |
06:46:58 | * | dtscode joined #nim |
06:55:12 | * | dtscode quit (Quit: Leaving) |
06:56:19 | * | dumdum joined #nim |
06:56:47 | * | dtscoder joined #nim |
06:57:20 | * | dtscoder is now known as dtscode |
06:58:02 | * | bjz joined #nim |
07:01:56 | * | jon____ quit (Quit: Page closed) |
07:15:26 | * | dymk quit (Ping timeout: 265 seconds) |
07:16:03 | * | dymk joined #nim |
07:20:39 | * | interested_user joined #nim |
07:21:03 | * | Grauwolf quit (Ping timeout: 264 seconds) |
07:21:52 | * | interested_user quit (Client Quit) |
07:37:55 | * | nueh joined #nim |
07:50:17 | * | chemist69 joined #nim |
08:08:28 | * | dapz joined #nim |
08:11:58 | * | nueh quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
08:14:18 | * | nueh joined #nim |
08:15:13 | * | DemonOne quit (Read error: Connection reset by peer) |
08:21:23 | * | dapz quit (Quit: Textual IRC Client: www.textualapp.com) |
08:27:53 | * | kniteli quit (Ping timeout: 240 seconds) |
08:35:44 | * | kniteli joined #nim |
08:39:56 | * | Trustable joined #nim |
08:46:36 | * | nueh quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
08:54:05 | * | VinceAddons joined #nim |
09:11:43 | * | nueh joined #nim |
09:11:46 | Triplefox | nimble seems to be having trouble with bitbucket repos? http://hastebin.com/hezobuvobo.tex |
09:12:11 | Triplefox | or maybe i have a badly configured build |
09:18:29 | Triplefox | welp, that library seems to have rotted anyway |
09:20:00 | * | sillesta joined #nim |
09:32:07 | * | BlaXpirit joined #nim |
09:33:51 | * | d3m1gd joined #nim |
09:34:08 | * | gtrundle quit (Ping timeout: 245 seconds) |
09:45:56 | * | nueh quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
09:50:39 | * | NimBot joined #nim |
09:52:20 | * | gtrundle joined #nim |
10:09:05 | * | d3m1gd quit (Ping timeout: 246 seconds) |
10:18:25 | * | biscarch quit () |
10:18:44 | * | biscarch joined #nim |
10:39:27 | * | dumdum quit (Ping timeout: 256 seconds) |
10:41:22 | * | clone1018 quit () |
10:41:35 | * | clone1018 joined #nim |
10:44:22 | * | nueh joined #nim |
10:55:57 | * | nueh quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
10:56:04 | * | akiradeveloper joined #nim |
10:56:29 | akiradeveloper | Do you have some sample code to convert seq[T] to ptr T? |
10:57:25 | akiradeveloper | addr(myseq[0])? |
10:58:14 | akiradeveloper | is it guaranteed that the internal memory blocks of seq is contiguous in virtual address? |
11:02:51 | * | silven quit (Ping timeout: 250 seconds) |
11:04:53 | * | silven joined #nim |
11:06:50 | * | valberg left #nim (#nim) |
11:08:07 | * | Angry joined #nim |
11:11:06 | * | nueh joined #nim |
11:16:00 | akiradeveloper | sorry, resolved myself |
11:16:04 | * | akiradeveloper quit () |
11:20:59 | gtrundle | |
11:22:11 | gtrundle | By |
11:34:01 | * | dumdum joined #nim |
11:38:57 | * | kashyap_ quit (Quit: Page closed) |
11:40:26 | * | kashyap_ joined #nim |
11:43:34 | * | nueh quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
11:56:34 | * | nueh joined #nim |
12:04:53 | * | d3m1gd joined #nim |
12:05:27 | * | MajorWork joined #nim |
12:09:41 | * | EXetoC joined #nim |
12:21:20 | reactormonk | def-, if you close an issue, imo slap it in as a test. Let's see if Araq thinks that inflates the test base. |
12:26:23 | def- | reactormonk: can you tell me how to run a single test or category? |
12:30:22 | * | MajorWork quit (Changing host) |
12:30:22 | * | MajorWork joined #nim |
12:31:34 | reactormonk | def-, b) is answered by --help |
12:37:02 | * | JinShil joined #nim |
12:39:01 | * | JinShil quit (Client Quit) |
12:41:03 | * | d3m1gd quit (Read error: Connection reset by peer) |
12:41:19 | * | nueh quit (Quit: Textual IRC Client: www.textualapp.com) |
12:57:05 | * | g4rg4m3|_ joined #nim |
12:57:23 | * | sillesta quit (Ping timeout: 250 seconds) |
12:57:23 | * | jasondotstar quit (Ping timeout: 250 seconds) |
13:20:46 | def- | reactormonk: doesn't work for me, i try testament/tester --print c stdlib |
13:20:49 | def- | and nothing happens |
13:20:56 | reactormonk | hmmm |
13:21:01 | reactormonk | ./koch tests c stdlib |
13:21:30 | def- | ah, never knew koch has the testers, nice |
13:27:08 | Angry | I'm not sure what's wrong "Error: internal error: GetUniqueType" http://pastebin.com/PHdcyQTM |
13:29:47 | EXetoC | the fact that a variable is an openarray perhaps. they're for parameters only |
13:30:03 | EXetoC | either way, such errors always indicate compiler bugs |
13:30:05 | Angry | how would I aproximate a c++ vector in a class then |
13:30:50 | EXetoC | use seq instead |
13:31:23 | Angry | same erro replacing openArray with seq |
13:31:41 | EXetoC | ok I see what's wrong |
13:32:07 | EXetoC | other than that |
13:33:33 | EXetoC | chances are you don't want "var b = bf", because b will then be a type description. you want something like "var b = bf(...)" |
13:34:20 | Angry | what would the ... be? I haven't defined a constructor |
13:34:29 | EXetoC | apparently you can't do typedesc that way, but it's not what you want in any case |
13:34:46 | EXetoC | bf(ip: x, ...) |
13:37:24 | Araq | Angry: use a 'seq' instead of 'openArray' and 'var b: bf' instead of 'var b = bf'. |
13:38:48 | EXetoC | some or all fields can be omitted though |
13:39:20 | Angry | after "var b=bf(ip:0)" or "var b: bf" the line "echo $(b.ip)" fails to compile. Any help? |
13:41:08 | EXetoC | you would have to do "echo($b.ip)", but "echo b.ip" is preferable |
13:41:52 | Angry | thanks, that worked. What is the difference between var b : bf and var b = bf() ? |
13:42:05 | EXetoC | "var b: T" means that b is of type T |
13:43:09 | Angry | I see. And the = bf(ip:4) after that works. Makes far more sense now. |
13:44:35 | EXetoC | the type is inferred in this case: "var b = bf()". "var x: bf = bf()" is identical |
13:45:19 | EXetoC | "var x: bf" gives it the type 'bf' but the whole structured is now zero-initialized since no specific value is given |
13:45:53 | Angry | so with bf() I could have trash in the structure? |
13:46:52 | EXetoC | that should zero-initialize too |
13:47:10 | Angry | is there a way to not initialize it? |
13:47:35 | EXetoC | everything is first zero-initialized unless the noInit pragma is applied ("var x {.noInit.}: T" IIRC) |
13:48:41 | * | AtomicBool quit () |
13:48:45 | EXetoC | only do that if speed is a concern |
13:48:56 | * | AtomicBool joined #nim |
13:49:25 | def- | and even then, measure that it actually makes a difference |
13:49:50 | def- | don't need to fill code with useless micro-optimizations |
13:49:53 | EXetoC | and the convention for type names is FooBar (pascal case) |
13:51:13 | Angry | Thanks for the help, and I normally use that casing speed, but this is just a brainfuck interpreter for learning the language. I'll likely be back since I'm trying to hit as many language features as possible, but it's time to go. |
13:51:28 | Angry | scheme not speed |
13:51:41 | * | Angry quit (Read error: Connection reset by peer) |
14:07:52 | * | sepisoad joined #nim |
14:09:32 | sepisoad | how to import a module from a nested something like this: "import doc/subdoc/module" |
14:09:56 | sepisoad | or somethig like this: "import ../../moduleA" |
14:14:19 | Araq | like this: |
14:14:26 | Araq | import doc/subdoc/module |
14:15:34 | sepisoad | @Araq thanks, it works now, i'm trying to rewrite one of my applications in nimlang |
14:16:07 | * | askatasuna joined #nim |
14:16:13 | sepisoad | is it not possible to have two exported functions with same names in two different modules |
14:16:40 | sepisoad | like ModuleA.MyProc() and ModuleB.MyProc() |
14:16:58 | dom96 | it is |
14:18:55 | sepisoad | how about two modules with same names in different sub directories |
14:22:09 | sepisoad | like "/a/x/moduleX" and "/a/y/moduleY" |
14:25:47 | EXetoC | I think you have to do "import foo as bar" then |
14:31:53 | Araq | you have to use pseudo-nimble packages for that, but IMHO it's a PITA to do that on purpose |
14:32:07 | Araq | better come up with different names for different modules |
14:32:26 | sepisoad | ok, got it |
14:33:26 | Araq | think about poor Araq. he might want to read your code without paying attention to your directory layout. |
14:42:08 | sepisoad | haha, ya, i'm just convinced |
14:42:33 | EXetoC | so why support sub-directories in the first place? would people complain too much otherwise? |
14:46:38 | Araq | EXetoC: for nimble packages it's essential everybody can have their own utils.nim module |
14:50:54 | * | BitPuffin joined #nim |
14:56:40 | reactormonk | Araq, have fun with all the PRs :-P |
14:56:56 | Araq | reactormonk: does it boot on windows again? |
14:57:13 | reactormonk | Araq, right... lemme fire up EC2 |
15:05:58 | * | darkf quit (Quit: Leaving) |
15:06:21 | reactormonk | wow, I need a few more ram sticks |
15:06:44 | Varriount_ | Meep |
15:06:50 | * | Varriount_ is now known as Varriount |
15:07:20 | Varriount | Araq: Ever considered using SIMD instructions with Nim's GC? |
15:07:31 | reactormonk | sooo how do I setup a dev environment in windows? I have zero dev experience on windows |
15:07:45 | Varriount | Apparently memcpy-like procedures can be sped up considerably. |
15:08:06 | Araq | Varriount: the GC doesn't use memcpy afaik |
15:08:21 | Varriount | reactormonk: Depends. Do you want to work with primarily open-source software? Are you planning on developing for both 32 & 64 bit? |
15:08:36 | Araq | and C's builtin memcpy should use these extensions anyway |
15:08:38 | reactormonk | Varriount, I wanna test the nim build on windows |
15:08:54 | Varriount | reactormonk: Generally, I install Mingw-w64, add GCC to path, then boot Nim. |
15:09:15 | Varriount | That's the simplest (though not the most flexible) way to set up things. |
15:09:34 | reactormonk | Varriount, 32bit |
15:10:05 | Varriount | reactormonk: The '-w64' just means that it *supports* 64 bit architectures. There's a 32-bit version as well. |
15:10:10 | reactormonk | ok |
15:10:22 | reactormonk | oh right, windows. mixed archs common. |
15:10:33 | * | BlaXpirit quit (Read error: Connection reset by peer) |
15:11:00 | * | BlaXpirit joined #nim |
15:11:01 | Varriount | The actual difference between Mingw-w64 and Mingw is more of a development ideology split. |
15:12:09 | Varriount | Araq: Is there a way to invoke 'check' with a dirty file? |
15:12:22 | Araq | no |
15:12:27 | Varriount | :< |
15:12:33 | Araq | dirty files are for nimsuggest only |
15:13:25 | onionhammer | hey, devel bootstrapping fixed? |
15:14:14 | reactormonk | Varriount, win-builds or mingw-builds? |
15:14:45 | Varriount | reactormonk: You do know we have a Nim installer, complete with Mingw compiler, on the website, right? |
15:14:55 | reactormonk | Varriount, nope. Never bothere to look |
15:15:04 | onionhammer | varriount are you working on nimlime? |
15:15:11 | Varriount | Many hours have been spent developing it, solely for your convenience. |
15:15:45 | Varriount | onionhammer: Yes. I've had nothing but the NimLime source files open in Sublime Text for the past week. |
15:16:06 | onionhammer | cool |
15:16:12 | onionhammer | i started adding in nimsuggest |
15:16:22 | Varriount | I saw. |
15:16:57 | reactormonk | Varriount, manually install git too? |
15:17:00 | onionhammer | also i added in hot-reloading (from one of wbonds packages) |
15:17:23 | onionhammer | so you dont need to restart st for tweaks |
15:17:24 | Varriount | reactormonk: Or you could download master from Github |
15:18:12 | Varriount | onionhammer: Which file did you add that too? I'm not sure I like adding external packages to the repo. |
15:18:19 | Varriount | We have Package Control for a reason. |
15:18:21 | * | mwbrown joined #nim |
15:18:32 | onionhammer | external packages? |
15:18:49 | onionhammer | I didnt add an external package, I just stole what wbond did for his package |
15:18:51 | onionhammer | it's in Nim.py |
15:19:19 | onionhammer | it's only for development/debugging purposes; for you and me mainly |
15:19:52 | * | sepisoad quit (Quit: Leaving) |
15:20:12 | Varriount | Ah, I see. Ok. |
15:20:28 | onionhammer | set auto_reload to true, but dont check it in |
15:20:39 | onionhammer | we can probably make that a setting |
15:20:42 | reactormonk | Araq, oh, I see. I get "The system cannot find the file specified" when I try to run c koch.nim |
15:20:43 | Varriount | onionhammer: When you said 'from one of wbonds packages', I thought you meant you just copied one of his package repos |
15:20:50 | onionhammer | ah |
15:21:03 | * | kuzy000_ joined #nim |
15:21:05 | onionhammer | no, I googled how to redo that and I saw a forum post from wbond saying "look what i did for sftp and blah blah" |
15:21:37 | reactormonk | which doesn't seem to be an error text generated by nim... |
15:21:57 | onionhammer | so anyway; nimsuggest is a lot lot faster, but there's still some issues with it when it comes to ambiguous project files |
15:21:57 | Araq | reactormonk: nim cannot find gcc.exe |
15:22:13 | onionhammer | and we need to reimplement the suggest stuff |
15:23:08 | onionhammer | varriount i'm hoping araq will make nimsuggest a bit more idiotproof :) |
15:23:30 | Araq | onionhammer: will work on it again, soon |
15:23:49 | onionhammer | no worries |
15:24:20 | reactormonk | Araq, oh, thanks |
15:30:21 | reactormonk | Araq, might just be the installed, it's apparently not in PATH |
15:33:28 | Araq | yep |
15:33:31 | Araq | bbl |
15:34:28 | * | Angry joined #nim |
15:46:51 | reactormonk | anyone can fix that? I have no idea about dev environments in windows. |
15:50:09 | * | elie is now known as Guest20112 |
15:52:42 | * | johnsoft quit (Read error: Connection reset by peer) |
16:03:04 | Angry | If I have a type with sequences ("tape : seq[uint8]" ) is there a way to default initialize them to a valid sequence. Assigning each seq the value @[] works, but it feels like something that should be automatic |
16:09:02 | EXetoC | dynamic allocation is never implicit though |
16:10:15 | EXetoC | Angry: but, 'add' will allocate if necessary at some point |
16:10:48 | * | kapil__ quit (Quit: Connection closed for inactivity) |
16:12:42 | Angry | replacing a @[] with an .add(5) causes a segfalt when accessing the variable. What am I missing? |
16:13:17 | EXetoC | "at some point" meaning some time in the future |
16:13:35 | Angry | http://pastebin.com/wHBmrXcD |
16:13:48 | EXetoC | I guess it'll be like what safeAdd is now |
16:14:38 | EXetoC | I'm saying that "add" will work like that at some point, but it doesn't now |
16:14:44 | Angry | by 'at some point' do you mean in the compiler life |
16:14:48 | EXetoC | so that should catch most mistakes |
16:14:54 | Angry | as in a not implimented feature |
16:15:20 | EXetoC | yes |
16:16:25 | EXetoC | you can also do "var x = newSeq[T]()". perhaps it'll become newSeq(T) one day |
16:16:32 | Angry | safeAdd works as expected thanks. |
16:16:57 | Angry | in a type declaration? |
16:18:49 | EXetoC | "var x = newSeq(YourTypeHere)", which is a little nicer imo |
16:21:02 | EXetoC | the prototype would then be "proc newSeq(T: typedesc, len = 0): seq[T]" rather than "proc newSeq[T](len = 0): seq[T]". the former would allow it to be called like in the example above |
16:22:17 | EXetoC | I might be going off on a tangent here, but I hope that explains it :-P |
16:25:09 | Angry | since we are talking about changes, I'm not sure add should check for a nil seq. If I know it won't help I shouldn't pay the price for it. It feels like something that should only be done in debug mode and throw an exception when it occurs. addSafe seems like a great alternative when you can not make any guarantees |
16:27:17 | EXetoC | it's very rarely going to make appends unacceptably slow, and we will of course have an unsafeAdd at that point |
16:28:33 | Angry | wait, does add not resize the array when neccisary? if not then you are right it should by default. It just 'felt' like the null check every add would be unneccisary. |
16:31:20 | EXetoC | it does, if there isn't enough capacity |
16:51:04 | * | chemist69 quit (Quit: leaving) |
16:59:44 | * | brson joined #nim |
17:14:52 | * | matkuki joined #nim |
17:16:52 | AtomicBool | well it would be nice to see nim on the benchmarks game, cya! |
17:16:56 | * | AtomicBool left #nim (#nim) |
17:19:05 | * | johnsoft joined #nim |
17:22:20 | * | adam- is now known as adam12 |
17:24:45 | * | MajorWork quit (Quit: Leaving) |
17:34:43 | * | sampwing joined #nim |
17:36:19 | * | NimBot joined #nim |
17:39:38 | * | Demos joined #nim |
17:40:04 | * | Matthias247 joined #nim |
17:43:07 | * | kashyap__ joined #nim |
17:43:19 | * | dumdum quit (Ping timeout: 256 seconds) |
17:44:37 | kashyap__ | Hi ... I am trying to traslate xv6 (unix kernel) to Nim ... Iam stuck with trying to translate C here - https://github.com/swetland/xv6/blob/master/include/proc.h#L39 (where gcc is told to use %gs:0 for cpu symbol) |
17:45:02 | BlaXpirit | :o |
17:45:49 | kashyap__ | perhaps I have to just use a global variable for now and see if it is really an issue or not |
17:50:29 | Angry | how do you compare a uint8 to 0? u8_variable != 0'u8 is giving type errors |
17:51:19 | kashyap__ | Angry - you can perhaps try import unsigned |
17:51:58 | Angry | that was it. |
17:59:37 | * | UberLambda joined #nim |
18:08:38 | def- | kashyap__: what about nim's asm statement?: http://nim-lang.org/manual.html#assembler-statement |
18:13:20 | def- | that kernel looks fun |
18:16:49 | matkuki | Is there a macro that can make a namespace inside a module, so you can use "MyModule.MyNamespace.MyProc(x)" from another module? |
18:18:31 | matkuki | I should actually ask if this can be done or not? |
18:26:12 | BlaXpirit | i have never seen it done |
18:30:45 | matkuki | BlaXpirit: Thanks for the info. |
18:37:18 | matkuki | BlaXpirit: You seem to know something about games. Which 2D physics engine would you recommend? I'm looking for simplicity. |
18:37:47 | BlaXpirit | i've considered only Box2D and Chipmunk |
18:37:55 | * | BitPuffin quit (Ping timeout: 264 seconds) |
18:37:56 | BlaXpirit | and chose Chipmunk |
18:40:14 | BlaXpirit | there are some bindings, seem to work, but i haven't really tried |
18:40:36 | matkuki | I'm also looking at Chipmunk. Tried compiling the demo in the D programming language and looks nice. How would you rank it in simplicity? I haven't looked at the guts of it yet. |
18:41:00 | BlaXpirit | there isn't much choice anyway |
18:41:06 | BlaXpirit | i don't think there are nim bindings for anything else |
18:42:42 | BlaXpirit | once i wanted to rewrite my nice example game to nim but gave up quickly |
18:43:02 | matkuki | Why? |
18:43:47 | BlaXpirit | don't remember |
18:44:00 | BlaXpirit | oh yerah.. it included SVG parsing |
18:47:02 | * | mytrile joined #nim |
18:57:20 | * | Etheco quit (Quit: Leaving) |
19:06:38 | * | Demos quit (Ping timeout: 245 seconds) |
19:15:01 | def- | BlaXpirit: i also started writing a game and needed svg parsing: https://github.com/def-/nim-rsvg |
19:15:37 | BlaXpirit | what does this do |
19:15:50 | def- | that's a wrapper for librsvg |
19:15:55 | BlaXpirit | this is not svg parsing |
19:15:57 | def- | oh wait |
19:16:01 | def- | now i understand parsing |
19:17:09 | * | lgfkewnfkjewf joined #nim |
19:17:26 | lgfkewnfkjewf | How do I get system time? |
19:17:43 | lgfkewnfkjewf | Like unix time. |
19:18:36 | Araq | times module |
19:20:48 | * | Angry quit (Ping timeout: 245 seconds) |
19:24:01 | * | lgfkewnfkjewf quit (Ping timeout: 246 seconds) |
19:36:34 | * | Demos joined #nim |
19:37:50 | Varriount | Araq: How would you feel about the 'check' command growing a new argument that determines whether it reads from stdin or from a file? |
19:38:19 | Araq | we don't support stdin for nimsuggest either |
19:38:33 | Varriount | Uh... yes you do? |
19:38:42 | * | lknflkewnflkewnf joined #nim |
19:38:49 | Araq | no. you can give the commands via stdin |
19:38:55 | Araq | but not the dirty buffer itself |
19:39:14 | lknflkewnflkewnf | One more question; how much performance overhead is there for methods as opposed to procs? |
19:39:41 | Varriount | lknflkewnflkewnf: Methods incur a O(n) overhead, where 'n' is the number of types to dispatch to. |
19:39:57 | Demos | Varriount, that is not a very useful statement |
19:39:58 | Varriount | lknflkewnflkewnf: You are so lucky I have name-completion. |
19:40:41 | Demos | if that n gets big enough to display asymptotic behavior something is very wrong |
19:40:48 | Araq | lknflkewnflkewnf: hard to say. 3x perhaps. if you blindly type 'method' instead of 'proc' and don't use the dynamic binding, there is no direct overhead. |
19:41:25 | Araq | since then the compiler can optimize the dispatching away |
19:41:49 | Demos | Araq, I wonder what nim's methods look like compared to vtables wrt to cache effects |
19:42:11 | Varriount | Araq: I ask because integrating an IDE with the 'nim check' command is a bit akward at the moment. When the check command is run, I have to save the dirty buffer somewhere. |
19:42:38 | lknflkewnflkewnf | Araq, so by dunamic binding you mean something similar to Javascript's prototyping, correct? |
19:42:40 | Araq | Varriount: yes, that's unavoidable. but you should use temporary files for that |
19:42:59 | Araq | lknflkewnflkewnf: no, I mean that you actually use inheritance and stuff |
19:43:12 | Demos | I forget how I did that in VS, I think I used temp files but I recall having trouble with the dirty buffer support |
19:43:12 | Varriount | I can either save it to the original file (which the user may not want), to a 'dirty' file (which can cause errors due to circular dependancies), or implement some sort of file swap mechanism |
19:43:23 | Demos | I think the main problem was with nim suggest though |
19:43:35 | lknflkewnflkewnf | Araq, okay, I see. |
19:44:07 | Araq | Varriount: the proper solution is to make nimsuggest support the 'check' command |
19:44:37 | Araq | then dirty files work as they do for 'sug' and 'def' |
19:45:07 | Araq | Demos: I fixed the dirty buffer support |
19:45:13 | Demos | allright |
19:46:07 | lknflkewnflkewnf | I don't know much about Nim internals, but would proc pointers incur less overhead than method calls? |
19:50:30 | Demos | bootstraping seems broken again looks like rstgen is calling algorithm.sort and overload resolution is failing |
19:54:51 | def- | Demos: on windows? |
19:54:57 | Demos | yeah |
19:55:09 | def- | that's what the builder also said, but i don't understand why |
19:55:13 | Demos | but it is not a c compiler issue |
19:55:19 | Demos | as far as I can tell |
19:55:21 | def- | any chance of debugging or fixing it? |
19:55:30 | Demos | I can try |
19:55:30 | def- | yeah, it was introduced by my changes, but i don't understand how they did that |
19:55:36 | def- | because it only affects windows |
19:55:44 | def- | and the changes were not windows-specific |
19:56:17 | Demos | do you mean commit 11a5a4 |
19:56:18 | Araq | lknflkewnflkewnf: yes, in general they do. |
19:56:34 | Varriount | lknflkewnflkewnf: Yes |
19:56:37 | Araq | Demos, def- I can fix it |
19:56:43 | def- | Araq: alright, great |
19:56:59 | Varriount | lknflkewnflkewnf: If you look at C++ internals, proc pointers are how vtables are implemented. |
19:57:45 | Varriount | Of course, the downside with vtables is that they require a pointer inside the structure that points to the vtable. Or you embed the vtable in the structure, which takes up space. |
19:57:56 | Demos | lknflkewnflkewnf, note that nim's proc() types are closure by default, and have an extra environment pointer, c++ style vtables share the environment pointer among all functions in the vtable |
19:59:19 | Araq | Demos: well that depends on the calling convention |
19:59:32 | Araq | if you don't use .closure, there is no such overhead |
19:59:53 | Demos | I thought that variables of type proc(...) were closure by default |
20:00:01 | Araq | but you have to watch out as .closure is the default |
20:00:09 | Araq | Demos: exactly |
20:00:10 | * | EXetoC quit (Remote host closed the connection) |
20:00:22 | Demos | which is what I said |
20:01:19 | Demos | Araq, care to share what broke bootstrapping |
20:01:36 | Araq | well I dunno |
20:02:06 | Araq | but my educated guess is that foo[T](a, b) depends on the arbitrary order in the symbol table from working |
20:02:16 | Araq | and since symbols have been added |
20:02:20 | Araq | the order changed |
20:02:41 | Araq | the symbol table is really fucked up, it was never really updated |
20:02:49 | Araq | to deal with the language spec changes |
20:03:49 | Araq | but hey, slowly but steadily the symtab learns about Nim's requirements ;-) |
20:05:01 | Demos | it does seem to work if I go back to an earlier commit and then boot, then go to devel and boot again |
20:05:17 | Demos | ab5b8f5 is the commit I went back to |
20:06:58 | * | EXetoC joined #nim |
20:07:21 | EXetoC | damn imagemagick hanging the OS |
20:08:12 | matkuki | Are there "padLeft/padRight" procs for strings? Only found "align". |
20:09:08 | * | dymk quit (Ping timeout: 245 seconds) |
20:16:04 | def- | matkuki: not in the standard library. you can easily add padRight yourself with repeatChar, or take a look at http://lyro.bitbucket.org/strfmt/ |
20:16:09 | * | nande joined #nim |
20:16:37 | matkuki | def-: Great thanks |
20:16:45 | * | xeizlif quit (Ping timeout: 244 seconds) |
20:20:29 | Araq | lknflkewnflkewnf: proc pointers also have the advantage that they work much better with Nim's effect system |
20:21:50 | Demos | and methods are not used very much in real code, so are more likely to be buggy |
20:22:17 | Demos | proc pointers will also work across modules (executable modules, not nim ones) better |
20:23:54 | * | dymk joined #nim |
20:24:38 | Araq | and they work better with generics too ... hrm |
20:29:38 | Araq | Demos: I'm not aware of any bug wrt methods though. except that according to Jehan the effect system is broken for them. But I never understood why that is. |
20:30:14 | Demos | I have run across a few, they have all been fixed though. they are just not used that much |
20:31:32 | * | UberLambda quit (Quit: Leaving the Matrix) |
20:32:49 | * | kuzy000_ quit (Ping timeout: 264 seconds) |
20:35:05 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
20:42:23 | * | xeizlif joined #nim |
20:42:53 | * | dymk quit (Ping timeout: 245 seconds) |
20:44:31 | * | dymk joined #nim |
20:45:13 | * | sampwing quit (Ping timeout: 252 seconds) |
20:46:50 | * | xeizlif quit (Ping timeout: 252 seconds) |
20:52:13 | Demos | Why the restriction on consts not being objects? |
20:53:27 | * | xeizlif joined #nim |
20:53:50 | * | bjz joined #nim |
20:55:01 | Araq | Demos: 'case objects' and inheritance was too much work to implement and 'case objects' are not possible as consts for C89 |
20:55:29 | Araq | but I will make it work for objects that don't use these 2 features asap |
20:57:41 | * | Demos quit (Ping timeout: 250 seconds) |
21:09:02 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
21:12:37 | EXetoC | ditch VC compat :p |
21:25:29 | * | askatasuna quit (Quit: WeeChat 1.1.1) |
21:25:56 | * | bjz joined #nim |
21:27:41 | * | mytrile quit (Read error: Connection reset by peer) |
21:32:30 | * | sampwing joined #nim |
21:36:40 | * | superfunc joined #nim |
21:41:13 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
21:51:48 | lknflkewnflkewnf | Are parallel and spawn not currently implemented? |
21:52:59 | lknflkewnflkewnf | Desktop/game.nim(17, 2) Error: undeclared identifier: 'parallel' |
21:53:29 | lknflkewnflkewnf | Oh, nevermind |
21:54:09 | superfunc | did you import threadpool? |
21:54:18 | lknflkewnflkewnf | Heh, now I did. |
21:54:39 | superfunc | right on |
21:55:42 | * | superfunc quit (Quit: leaving) |
22:04:09 | * | Angry joined #nim |
22:05:25 | Varriount | Hello Angry |
22:05:40 | Angry | Hey there |
22:14:03 | dom96 | def-: thank you for improving the GSoC 2015 ideas page. |
22:15:31 | * | lknflkewnflkewnf quit (Ping timeout: 246 seconds) |
22:16:31 | * | sampwing quit (Ping timeout: 252 seconds) |
22:20:01 | * | sampwing joined #nim |
22:34:01 | * | mwbrown quit (Ping timeout: 264 seconds) |
22:45:11 | * | Jehan_ joined #nim |
22:56:50 | * | idontcare joined #nim |
22:57:05 | * | idontcare left #nim (#nim) |
23:04:14 | * | Etheco joined #nim |
23:06:11 | flaviu | def-: re yaml parse, I've already made wrapped one: https://gist.github.com/71548888e37ccd0219a0 |
23:06:50 | flaviu | I won't make guarantees as to its quality though, it's probably really buggy. |
23:08:33 | * | CARAM__ quit (Ping timeout: 250 seconds) |
23:09:12 | Araq | yaml needs to die |
23:09:18 | Araq | not get more support |
23:09:31 | Araq | so complex for what it offers |
23:09:33 | * | endou______ quit (Ping timeout: 245 seconds) |
23:10:52 | flaviu | Araq: people will use yaml if they like it, regardless of what your opinion of yaml is. Might as well as have a high quality implementation (mine certainly isn't, btw) |
23:11:24 | Araq | flaviu: they won't use it if there is no lib for it :P |
23:11:34 | BlaXpirit | "it" being Nim |
23:11:35 | Araq | but you're right of course |
23:11:37 | flaviu | Yeah, they'll just use ruby instead. |
23:12:43 | BlaXpirit | flaviu, any plans to release it? |
23:13:16 | flaviu | BlaXpirit: Sure, but not as-is. |
23:13:27 | BlaXpirit | eh why not |
23:14:01 | flaviu | Nim already has plenty of buggy libraries, I don't want to add another one. |
23:14:17 | flaviu | I'd have to create a test suite and clean up the code first. |
23:14:47 | * | matkuki quit (Quit: ChatZilla 0.9.91.1 [Firefox 35.0.1/20150122214805]) |
23:15:52 | BlaXpirit | bleh |
23:16:01 | BlaXpirit | if someone really wants it, they can do it |
23:17:39 | * | Trustable quit (Remote host closed the connection) |
23:18:52 | def- | so, no more yaml for gsoc i guess. we have nice toml and json anyway |
23:19:11 | * | endou______ joined #nim |
23:20:34 | def- | so we don't have any easy gsoc project ideas now |
23:20:41 | * | endou______ quit (Changing host) |
23:20:41 | * | endou______ joined #nim |
23:20:56 | def- | (except improving the times module) |
23:21:18 | flaviu | That's not easy |
23:21:23 | flaviu | That's the opposite of easy. |
23:21:46 | def- | Last year it was in as easy. Why is it hard? |
23:21:55 | flaviu | http://forum.nim-lang.org/t/814/2#4798 |
23:24:36 | BlaXpirit | please tell me what is the deadline for applying for gsoc for normal people |
23:24:58 | BlaXpirit | i mean that as in "not for projects" |
23:25:33 | flaviu | BlaXpirit: Look at the circle thing on the side of https://www.google-melange.com/gsoc/homepage/google/gsoc2015 |
23:26:02 | BlaXpirit | and what does it mean |
23:26:13 | BlaXpirit | i think it shows when it starts |
23:26:22 | BlaXpirit | oh |
23:27:08 | BlaXpirit | https://www.google-melange.com/gsoc/events/google/gsoc2015 gives all the info. |
23:28:41 | * | CARAM__ joined #nim |
23:28:41 | BlaXpirit | lol the links appear to be exactly the same, but they're not |
23:30:19 | * | Demos joined #nim |
23:44:26 | * | pafmaf joined #nim |
23:50:01 | * | sampwing quit (Ping timeout: 252 seconds) |
23:54:51 | Araq | hrm did somebody revert the patch causing bootstrapping to fail? |