00:01:24 | * | Kingsquee joined #nim |
00:02:08 | * | gsingh93 joined #nim |
00:04:59 | * | datanoise quit (Ping timeout: 244 seconds) |
00:15:05 | * | strcmp1 quit (Quit: Leaving) |
00:19:01 | * | strcmp1 joined #nim |
00:19:27 | ozra | dom96: what can cause tracebacks - or to be more specific, what phrases can they end with in output? I'm trying to make the tester give "smarter outputs" by matching stdout for tracbacks/sigsegvs _when_ it encounters a exit-code mismatch. Works fine matching the start. But as said, what could be possible ending phrases except SIGSEGV...? |
00:22:48 | ozra | dom96: No bother btw, I'll use a fail-proof tactic, just keep matching tracback lines, and then include one more.. should work. |
00:30:38 | * | datanoise joined #nim |
00:31:57 | * | boop is now known as boopisaway |
00:39:34 | * | jaco60 quit (Ping timeout: 256 seconds) |
00:40:38 | * | dddddd quit (Ping timeout: 244 seconds) |
00:44:42 | * | brson joined #nim |
00:50:03 | * | datanoise quit (Ping timeout: 252 seconds) |
00:53:45 | * | onionhammer quit (Read error: Connection reset by peer) |
00:54:46 | * | onionhammer joined #nim |
00:59:03 | vikaton | still dont know what we are called |
01:22:16 | * | ErikBjare_ quit (Ping timeout: 250 seconds) |
01:22:16 | * | Guest46758 quit (Ping timeout: 250 seconds) |
01:23:28 | * | avsej joined #nim |
01:23:49 | * | ErikBjare_ joined #nim |
01:23:52 | * | avsej is now known as Guest68501 |
01:27:45 | dtscode | nimbians vikaton |
01:28:11 | vikaton | orly |
01:28:22 | dtscode | In my make believe reality at least |
01:29:27 | vikaton | I always thought it was Nimmers |
01:30:06 | dtscode | That is a separate, more radical group of nims who don't like nimbus |
01:30:32 | vikaton | o |
01:32:00 | * | datanoise joined #nim |
01:36:52 | * | datanoise quit (Ping timeout: 255 seconds) |
01:40:41 | vikaton | will -nilChecks:)n check for nil or turn the segfaults into NilErrors? |
01:40:43 | vikaton | or both? |
01:41:00 | vikaton | -nilChecks:On* |
01:42:07 | dtscode | I was like what is nilChecks smiley? |
01:42:36 | * | filwit quit (Quit: Leaving) |
01:43:15 | vikaton | lol |
01:43:23 | vikaton | d0es any1 kn0w ?> |
01:45:02 | ozra | It statically checks at comile time that your code can't possibly have a nullptr for that var |
01:45:23 | dtscode | Someone should write a lint for nim |
01:45:41 | vikaton | ozra: I thought that was the 'not nil' annotation |
01:46:06 | ozra | aha sorry. a bit tired, sleep time :) |
01:46:14 | vikaton | night |
01:46:48 | ozra | vikaton: yes I don't remember the exatcs of those switches right now.. g'nigt! |
01:50:53 | dtscode | Does anyone know if there is any particular reason why theres no overload of split with a max split in the stdlib? |
01:54:49 | Xe | is there a way to do a foreach on every character in a string? |
01:54:51 | vikaton | I'm not sure |
01:55:13 | * | ozra quit (Ping timeout: 246 seconds) |
01:55:20 | vikaton | Xe, yes |
01:55:27 | vikaton | but It's not off the top of my head |
01:55:51 | dtscode | Xe: for the_char in the_string: ... |
01:56:18 | vikaton | Xe, https://nim-by-example.github.io/variables/ ? |
01:56:37 | vikaton | dtscode, does this look good so far? https://gist.github.com/Vikaton/126c07c00527cbcab545 |
01:56:45 | Xe | ah I see |
01:56:48 | Xe | thanks |
01:56:58 | vikaton | it's for Nim's common criticism thingy |
01:57:38 | dtscode | I guess so |
01:57:46 | dtscode | I'm not very experienced with nim tbh |
01:58:11 | vikaton | neither am I |
01:58:27 | * | brson quit (Quit: leaving) |
01:58:42 | dtscode | > with compiling to C IR. |
01:58:58 | dtscode | I would change that to "with compiling to C as an IR." |
02:00:28 | vikaton | dtscode, but C is an intermediate language |
02:00:41 | dtscode | Not traditionally |
02:01:45 | vikaton | dtscode: Though not explicitly designed as an intermediate language, C's nature as an abstraction of assembly and its ubiquity as the de facto system language in Unix-like and other operating systems has made it a popular intermediate language: Eiffel, Sather, Esterel, some dialects of Lisp (Lush, Gambit), Haskell (Glasgow Haskell Compiler), Squeak's |
02:01:45 | vikaton | Smalltalk-subset Slang, Cython, Seed7, SystemTap, Vala, and others make use of C as an intermediate language |
02:01:50 | vikaton | - Wikipedia |
02:03:55 | dtscode | Eh... I guess so. Thats still a very small amount of languages |
02:06:08 | * | datanoise joined #nim |
02:08:09 | * | gsingh93 quit (Ping timeout: 252 seconds) |
02:10:01 | TEttinger | dtscode, heh. any list of languages is going to be a small amount |
02:10:17 | TEttinger | there are thousands out there, do you want all of them that have feature X? |
02:10:20 | Xe | https://gist.github.com/Xe/70bc08d7aff341b6d743#file-crack-nim |
02:10:25 | Xe | is there a better way to do this? |
02:10:44 | dtscode | TEttinger: Not really. And I never said I want them to have that feature |
02:10:56 | TEttinger | ? |
02:11:15 | TEttinger | no I mean do you want a fully researched list of languages that contain feature X |
02:11:26 | TEttinger | C++ compiled to C at first |
02:11:29 | TEttinger | it doesn't now |
02:11:32 | TEttinger | does it count? |
02:11:44 | dtscode | No. I never asked for one. I said they don't traditionally compile to C |
02:11:49 | dtscode | Also, C++ never compiled to C |
02:11:58 | TEttinger | well, preprocessed |
02:12:10 | dtscode | C with classes compiled to a C that looked a lot like C++ thanks to macros |
02:12:31 | TEttinger | https://en.wikipedia.org/wiki/Cfront |
02:12:33 | TEttinger | ah |
02:14:16 | notfowl | Xe |
02:14:18 | vikaton | uhhh |
02:14:24 | notfowl | Better way to do what |
02:14:30 | vikaton | Xe, I like your for loops there |
02:14:38 | * | yglukhov___ joined #nim |
02:15:09 | Xe | notfowl: see the gist I linked |
02:15:46 | dtscode | Holy shit |
02:15:48 | dtscode | such loop |
02:15:53 | vikaton | Xe, what does that decrypt? |
02:17:42 | Xe | vikaton: 8 character alphanumeric passwords using posix crypt() |
02:19:05 | Xe | it was the result of a "shooting the shit" idea |
02:19:09 | flaviu | There are definitely better ways to do that. |
02:19:21 | * | yglukhov___ quit (Ping timeout: 276 seconds) |
02:20:38 | flaviu | You could probably translate https://docs.python.org/3.3/library/itertools.html#itertools.product to Nim |
02:24:00 | TEttinger | so your worst case, the password 'mmmmmmmm', would take 2821109907456 tries |
02:24:54 | TEttinger | 2 trillion of something is too many |
02:25:13 | TEttinger | err, 2 quadrillion |
02:25:30 | dtscode | What if its 2 quadrillion of good things? |
02:25:52 | TEttinger | ok, trillion |
02:25:54 | TEttinger | that is huge |
02:26:05 | TEttinger | you can die from too much of anything |
02:26:07 | TEttinger | water even |
02:26:14 | TEttinger | broccoli |
02:26:23 | dtscode | What if its a trillion cups of elixir of life? |
02:26:39 | TEttinger | lead poisoning from the pewter goblet |
02:26:52 | dtscode | The elixir of life keeps you alive |
02:27:00 | Xe | TEttinger: :D |
02:27:02 | TEttinger | lead poisoning drives you insane |
02:27:11 | dtscode | But you're alive :D |
02:27:29 | dtscode | And anyways, I'm already insane |
02:29:02 | Xe | aren't we all mad here? |
02:29:26 | dtscode | ^ |
02:30:19 | vikaton | im not |
02:30:20 | notfowl | Its amazing that I use this terribly unsafe language and I still have all my fingers and toes |
02:30:23 | vikaton | im p happy rn |
02:30:38 | notfowl | am I just that good? Yes |
02:31:46 | vikaton | notfowl: 1337 |
02:32:02 | vikaton | I like living like on the edge |
02:32:07 | ldlework | notfowl: which one |
02:32:26 | notfowl | Nim ofc. The enemy of memory safety |
02:32:31 | dtscode | notfowl: I like you better than that noob fowl who lost all of his toes |
02:32:34 | TEttinger | http://www.regardinghealth.com/oll/RHO/2010/12/Article.aspx?bmkEMC=64632 , it's fantastic that health really just hangs in the slightest balance of conflicting chemicals. if you have a clot in a vein, they can't treat it if you have too much vitamin K, which is otherwise innocuous |
02:32:43 | notfowl | dtscode: :D |
02:33:27 | TEttinger | makes you wonder about computers too, how every time we write programs, they need to be perfect syntax-wise, and even then may not behave correctly |
02:33:56 | vikaton | notfowl, do you know what -nilChecks:On does? |
02:34:04 | Xe | nim is kinda annoying using tup to build |
02:34:45 | notfowl | vikaton: it does something that the programmer should be doing? |
02:34:52 | vikaton | Ok |
02:36:30 | vikaton | I need Araq |
02:37:50 | dtscode | Have you accepted araq as your lord and savior? |
02:40:02 | notfowl | vikaton: why |
02:40:09 | notfowl | Type nim --help |
02:40:18 | notfowl | I didn't know that was a serious question |
02:40:39 | Xe | the nim command line parser is kind of annoying |
02:41:19 | vikaton | notfowl, -nilChecks is a future addition, so I was wondering if you knew it |
02:43:29 | Heartmender | i fail to see why the points that vikaton is asdressing in his gist are relevant |
02:44:06 | vikaton | Heartmender: how aren't they? |
02:44:31 | Heartmender | memory safety is the problem of the user, not the compiler |
02:45:33 | vikaton | Heartmender: it's a common criticism, and humans make errors |
02:45:41 | notfowl | Aye. Extra analysis means extra time spent compiling. I like that nim recompiles itself in 6-7 seconds. I build rust recently it took like 20 minutes |
02:45:53 | vikaton | But when there is hand-written Nim code that contains errors like dereferencing a null pointer, there are ways to avoid this: |
02:46:03 | vikaton | ^ that is address the user's fault |
02:46:09 | notfowl | Recompiles itself 3 times in 6-7 seconds* |
02:46:32 | vikaton | notfowl, yes Rust is known for slow compilations |
02:46:51 | vikaton | but the borrow checker and such do add time |
02:47:22 | vikaton | I cant seem to trigger a stack overflow as easily in Nim as is in Rust |
02:48:19 | * | Jesin quit (Quit: Leaving) |
02:54:53 | * | jox joined #nim |
02:55:42 | * | jox left #nim (#nim) |
02:56:14 | * | Symer joined #nim |
02:56:26 | Symer | Hi, I have a question about Nim |
02:56:43 | Symer | could this happen in normal nim code? http://www.thegeekstuff.com/2013/06/buffer-overflow/ |
02:57:11 | dtscode | Afaik, yes, if you aren't being careful |
02:57:50 | * | rgv151 joined #nim |
02:58:36 | Symer | dtscode: will the program execute unexpected code or just exit? |
02:58:51 | dtscode | That I am not sure about |
03:01:15 | * | bonerangue joined #nim |
03:07:21 | * | bonerangue left #nim (#nim) |
03:10:53 | * | Symer quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
03:11:09 | * | bonerangue joined #nim |
03:11:19 | * | bonerangue left #nim (#nim) |
03:11:31 | * | vikaton quit () |
03:16:08 | * | BitPuffin|osx joined #nim |
03:22:13 | * | fioco joined #nim |
03:22:22 | * | dashed joined #nim |
03:22:37 | fioco | Hi.... dom96 thanks for suggesting a minecraft clone to me but that was way ahead of me |
03:23:11 | * | Jesin joined #nim |
03:23:24 | fioco | I've decided to build a web, client side nim runner. So a server serves html iinlined nim and client executes in a sandbox |
03:23:29 | * | BitPuffin|osx quit (Ping timeout: 256 seconds) |
03:34:38 | * | darkf joined #nim |
03:39:28 | dtscode | So TIL nim c executable_name works the same as nim c file.nim |
03:43:34 | * | datanoise quit (Ping timeout: 258 seconds) |
03:46:47 | * | rgv151 left #nim ("Leaving...") |
03:55:13 | * | def- quit (Ping timeout: 256 seconds) |
03:55:27 | * | def- joined #nim |
03:55:33 | * | wan quit (Ping timeout: 265 seconds) |
03:56:01 | * | wan joined #nim |
03:57:23 | * | rgv151 joined #nim |
03:57:35 | * | datanoise joined #nim |
03:58:52 | * | gsingh93 joined #nim |
04:00:18 | * | fioco left #nim (#nim) |
04:02:55 | * | EastByte quit (Ping timeout: 252 seconds) |
04:03:12 | * | EastByte joined #nim |
04:20:32 | * | kokozedman joined #nim |
04:29:24 | * | pregressive joined #nim |
04:29:33 | * | kokozedman quit (Quit: Leaving) |
04:29:40 | * | gsingh93 quit (Ping timeout: 252 seconds) |
05:07:27 | * | pregressive quit (Remote host closed the connection) |
05:29:28 | * | ingsoc joined #nim |
05:53:31 | * | nande quit (Remote host closed the connection) |
06:04:38 | * | dashed quit (Quit: Connection closed for inactivity) |
06:26:33 | * | datanoise quit (Ping timeout: 272 seconds) |
06:29:36 | * | yglukhov___ joined #nim |
06:32:54 | * | yglukhov___ quit (Client Quit) |
06:38:18 | * | leonlee joined #nim |
06:53:15 | * | datanoise joined #nim |
06:54:48 | * | kumul quit (Quit: Leaving) |
06:55:10 | * | leon_lee joined #nim |
06:55:30 | * | leonlee quit (Read error: Connection reset by peer) |
07:02:09 | * | xificurC joined #nim |
07:07:12 | * | Ven joined #nim |
07:08:41 | * | gokr_ quit (Quit: IRC for Sailfish 0.9) |
07:09:02 | * | gokr_ joined #nim |
07:11:01 | * | datanoise quit (Ping timeout: 264 seconds) |
07:16:54 | * | Ven_ joined #nim |
07:16:56 | * | Ven quit (Read error: Connection reset by peer) |
07:17:46 | * | BlaXpirit joined #nim |
07:26:32 | * | ozra joined #nim |
07:26:42 | * | leon_lee quit (Quit: Leaving) |
08:01:20 | * | Guest87260 is now known as wuehlmaus |
08:02:29 | * | OnO joined #nim |
08:05:59 | * | coffeepot joined #nim |
08:07:18 | * | Ven_ quit (Read error: Connection reset by peer) |
08:07:43 | * | Trustable joined #nim |
08:09:43 | * | rgv151 quit (Quit: Leaving...) |
08:14:26 | * | kokozedman joined #nim |
08:16:14 | * | jubalh joined #nim |
08:17:45 | kokozedman | dom96, Araq: has there been some test or paper on the overhead involved with the asyncdispatch? |
08:20:15 | * | Trustable quit (Remote host closed the connection) |
08:25:28 | * | ozra quit (Ping timeout: 246 seconds) |
08:27:16 | * | johnsoft quit (Ping timeout: 255 seconds) |
08:27:30 | * | johnsoft joined #nim |
08:28:26 | * | yglukhov___ joined #nim |
08:39:49 | * | ozra joined #nim |
09:09:08 | * | Matthias247 joined #nim |
09:13:38 | * | Kingsquee quit (Quit: Konversation terminated!) |
09:19:23 | wuehlmaus | today i used 'nim i'. it crashed when i tried math.pow(2,2). is 'nim i' obsolete? |
09:19:32 | wuehlmaus | perhaps it could have a disclaimer |
09:20:15 | wuehlmaus | of course a working REPL would be wonderful. |
09:22:46 | * | Ven joined #nim |
09:25:30 | notfowl | Isn't it disabled now |
09:26:15 | wuehlmaus | it's not mentioned anymore when using --help |
09:28:04 | notfowl | It doesn't have ffi so its not particularly useful |
09:29:23 | notfowl | A compile time switch could add pow at compile time |
09:29:32 | wuehlmaus | yep. it is a bit like rusti |
09:29:41 | wuehlmaus | which is abandoned |
09:30:06 | wuehlmaus | i know for sure that a REPL for a compiled language is difficult |
09:30:29 | wuehlmaus | personally i use hsandbox nim to try stuff |
09:30:45 | notfowl | What's that |
09:30:55 | wuehlmaus | it's a sandbox for languages done in python |
09:31:10 | notfowl | A web compiler? |
09:31:17 | wuehlmaus | no, not web, command line |
09:35:29 | wuehlmaus | https://labix.org/hsandbox |
09:36:54 | * | dddddd joined #nim |
09:43:43 | * | jaco60 joined #nim |
09:56:16 | * | datanoise joined #nim |
10:00:42 | * | datanoise quit (Ping timeout: 244 seconds) |
10:09:09 | * | boopisaway is now known as boop |
10:12:33 | * | elbow quit (Ping timeout: 276 seconds) |
10:20:33 | * | johnsoft quit (Ping timeout: 256 seconds) |
10:21:39 | * | johnsoft joined #nim |
10:25:48 | * | elbow joined #nim |
10:30:54 | * | OnO quit (Quit: My iMac has gone to sleep. ZZZzzz…) |
10:30:57 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:40:46 | * | OnO joined #nim |
10:44:10 | * | johnsoft quit (Ping timeout: 272 seconds) |
10:44:31 | * | johnsoft joined #nim |
10:45:09 | * | vikaton joined #nim |
10:48:36 | * | darkf_ joined #nim |
10:48:43 | * | darkf_ quit (Changing host) |
10:48:43 | * | darkf_ joined #nim |
10:52:08 | * | darkf quit (Ping timeout: 256 seconds) |
10:53:33 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:56:13 | * | OnO quit (Quit: My iMac has gone to sleep. ZZZzzz…) |
10:59:06 | * | jochenvdv joined #nim |
11:06:20 | * | kashyap_ joined #nim |
11:06:42 | kashyap_ | Hi, how do I connect to an HTTPS server in Nim....looks like httpclient does not support HTTPS |
11:07:27 | r-ku | kashyap_: same way you do it in c++ |
11:07:30 | * | SShrike joined #nim |
11:07:49 | Varriount | You need to compile with ssl support, http://nim-lang.org/docs/httpclient.html#ssl-tls-support |
11:08:10 | Varriount | r-ku: That's not very helpful. :/ |
11:08:39 | r-ku | yeah well i know.. i wanted to say on windows i use WinHttp API and anywhere else curl but you dropped better solution :) |
11:08:40 | notfowl | heh how to do it in c++? go to google and find some library to do it? |
11:08:40 | kashyap_ | got it ... thanks Varriount |
11:10:44 | kashyap_ | it worked :) |
11:10:45 | * | darkf_ is now known as darkf |
11:14:08 | * | SShrike quit (Quit: WeeChat 1.2) |
11:29:40 | jaco60 | hi, is it possible to make cohabit stable and dev release of nim on the same host? On my box, seems that compiling with the dev one still use the stable lib |
11:30:02 | Varriount | jaco60: What OS? |
11:30:07 | jaco60 | Linux |
11:30:44 | Varriount | Hrm. You could have a script which alters the PATH environment variable, or unlinks/relinks to the appropriate Nim binary. |
11:31:24 | jaco60 | which PATH ? I've already tried that ~/Téléchargements/Nim/bin/nim --lib:"/home/jaco/Téléchargements/Nim/lib/" c tests |
11:31:24 | BlaXpirit | I don't think there is a need for any of this |
11:31:30 | Varriount | I'm on Windows, and I just have two folders, each housing a Nim installation, and a command prompt for each to set up the appropriate environment variables. |
11:31:55 | BlaXpirit | I'm pretty sure Nim uses the correct lib location automatically |
11:32:18 | BlaXpirit | I have stable installed globally |
11:32:19 | Varriount | jaco60: The environment variable called PATH? |
11:32:21 | BlaXpirit | and dev added to PATH |
11:32:23 | BlaXpirit | works great |
11:32:30 | BlaXpirit | when i need stable, i write /usr/bin/nim |
11:32:34 | jaco60 | PATH is only for execs, not for libs |
11:33:02 | jaco60 | the pb is not for the nim exec, but for the nim lib, it seems |
11:33:11 | BlaXpirit | never had any such problems. |
11:33:23 | BlaXpirit | [:31:54] <BlaXpirit> I'm pretty sure Nim uses the correct lib location automatically |
11:33:27 | jaco60 | hum/// |
11:33:37 | ozra | jaco60: I was surprised by this one at first too.. I simply pass "--lib:wanted-lib-dir" to the compiler to specify.. |
11:34:03 | jaco60 | so why DBL_EPSILON is not accepted ? |
11:34:14 | jaco60 | it is dans devel, tho |
11:35:37 | ozra | jaco60: And I've updated a PR to fix the tester regarding this as late as a few hours ago, so once it's accepted, tests will implicitly use the expected compiler + lib instead of path.. |
11:36:15 | jaco60 | ozra, ok... will wait, then :) |
11:36:57 | * | Ven joined #nim |
11:37:44 | ozra | jaco60: BlaXpirit: I'm not completely certain as to how the current lib-path resolution works - but in short: no it does not work as you'd expect. So for the case of general compilation, some new resolution method has to be though through and implemented.. |
11:39:15 | ozra | I think it favours the lib in closest relation to the pathed nim binary, no matter which binary is used. The lib "closest" to the compiler used should be the appropriately prioritized it seems to me? |
11:45:41 | * | datanoise joined #nim |
11:50:09 | * | datanoise quit (Ping timeout: 240 seconds) |
12:05:37 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
12:16:04 | * | thotypous quit (Ping timeout: 244 seconds) |
12:21:59 | * | filwit joined #nim |
12:27:06 | filwit | since Nim encourages composition over inheritance, and gives us a lot of tools (generics, concepts) to work with them well, it would be nice to have a 'auto composition' feature for types which avoided the runtime overhead of inheritance, but still compose types in a declarative fashion. |
12:27:27 | filwit | Meaning you could write something like: `type Foo = object from Bar` |
12:28:24 | filwit | and 'Foo' would be contain all the members of 'Bar', except the runtime typeinfo. So you couldn't do: `if foo of Bar: ...` |
12:28:37 | filwit | (where 'foo' is an instance of 'Foo') |
12:29:20 | notfowl | so say Foo is a concept, a contract of some behavior being fulfilled and use interfaces |
12:30:06 | filwit | is that it? i'm not sure I see your point |
12:30:35 | notfowl | what you suggest is possible with a small amount of fiddling with generics |
12:31:05 | filwit | okay I understand that.. |
12:31:16 | filwit | but i said "in a declarative syntax" |
12:31:36 | * | pregressive joined #nim |
12:31:47 | filwit | so it feels similar to object inheritance (indeed it's very similar, just slightly limited.. for those of us that don't use 'method') |
12:33:07 | * | JinShil joined #nim |
12:36:09 | filwit | plus, Any type could compose from any other type, regardless of whether or not it was {.inheritable.}/of-RootObj |
12:36:09 | Varriount | filwit: So essentially copying the object structure, without creating the type link? |
12:36:29 | filwit | yes |
12:37:12 | filwit | but concepts and generic code would still work the same, just not runtime inheritance checking (cause it wouldn't contain a RootObj typeinfo reference) |
12:37:38 | filwit | and methods wouldn't be callable from a super-type, etc |
12:39:24 | filwit | you could even mix it will inheritance like or do multi-composition like: `type Foo = object of Bar from A, B, C` |
12:39:52 | filwit | gah, early for me, can't type.. |
12:40:14 | * | OnO joined #nim |
12:42:27 | notfowl | filwit, here most of the work is done already, what you describe is sugar https://bitbucket.org/fowlsoft/interfaces/wiki/Home |
12:43:56 | * | thotypous joined #nim |
12:44:33 | filwit | that looks like the opposite of what i'm talking about.. isn't that code building a customized tuple of procs (an interface) ? |
12:45:37 | notfowl | yes |
12:45:46 | filwit | you're building a 'interface' (collection of function pointers) based off a Nim 'concept', that is not what I'm talking about at all |
12:45:48 | notfowl | polymorphism is only useful when talking about behavior |
12:45:55 | filwit | wut? |
12:46:12 | filwit | okay, we're on different pages |
12:46:13 | * | jochenvdv quit (Quit: Page closed) |
12:46:30 | notfowl | from this its very to easy to add a type thats "Drawable and Syncable" |
12:46:41 | Varriount | notfowl: filwit is talking about something different, I think... |
12:47:10 | filwit | notfowl: and you'll be invoking it all via dynamic dispatch |
12:47:17 | Varriount | filwit wants to be able to copy the structure of a type, without copying the type information as well. |
12:47:30 | filwit | yes |
12:47:37 | notfowl | eh i thought thats what you want |
12:48:05 | filwit | no, that's cool and useful, but not what i want |
12:48:27 | notfowl | er its easy to copy the structure of a type |
12:48:32 | notfowl | you just encapsulate it |
12:48:36 | filwit | yes i know |
12:48:53 | filwit | but then you have to delegate everything to that member |
12:49:05 | filwit | vs inheritance, where you don't |
12:49:14 | notfowl | maybe you could just define converters? |
12:49:43 | notfowl | how do you guess which functions should be available from the new type? |
12:49:59 | * | kokozedman quit (Quit: kokozedman) |
12:50:38 | filwit | no proc which accepted a 'Bar' would automatically accept a 'Foo' or anything.. only generic code would work |
12:50:52 | notfowl | functions arent attached so even if you could get a list of all functions that accept or return that type, which ones need to be forwarded or reinstantiated for this type |
12:51:46 | filwit | idk what you're talking about, the type would be it's own type, it's 'composition' |
12:52:03 | notfowl | such generic code would access fields, so you make a concept type full of "x.name is string" |
12:56:21 | filwit | i really don't know what you're talking about fowl, I'm completely lost as to what you're referring too. I'm just suggesting a nice way of making composition feel like inheritance, so we could have pseudo-inheritance that doesn't have runtime memory overhead but works with Nim's generics/concepts |
12:59:24 | * | banister joined #nim |
13:00:51 | filwit | say you have a Sprite type and SomeSprite concept. You know you'll never be using a Sprite instance directly, but you'll have multiple types in your game which mimic a Sprite (eg, have position, rotation, image, etc).. and which SomeSprite can work with.. right now you'd either have to make each game type compose a sprite as a member (making it so all access to position, etc goes through that) or you can use inheritance which incurs |
13:00:51 | filwit | runtime typeinfo for each Sprite (when you'll never need it.. and may actually be a performance concern for some game types like Particles, etc) |
13:05:32 | * | JinShil quit (Quit: Konversation terminated!) |
13:05:47 | * | pregressive quit () |
13:06:18 | filwit | and thinking about it, you could pass types composed from supers to procs which worked with supers.. the calls would just be sugar... |
13:10:30 | filwit | since the composition would be inline, eg, all of 'Sprite' would be injected in order we know that the first "Sprite sized" chunk of memory in anything that's composed from it would be Sprite data |
13:11:40 | filwit | so any `proc whatever(s:Sprite)` would work with any a `type Ship = object from Sprite` too |
13:16:04 | * | TEttinger quit (Ping timeout: 256 seconds) |
13:16:40 | * | zahary joined #nim |
13:22:30 | vikaton | ping Araq? |
13:37:37 | * | BlaXpirit_ joined #nim |
13:37:37 | * | BlaXpirit is now known as Guest52868 |
13:37:37 | * | Guest52868 quit (Killed (sendak.freenode.net (Nickname regained by services))) |
13:37:37 | * | BlaXpirit_ is now known as BlaXpirit |
13:37:43 | * | Matthias247 quit (Read error: Connection reset by peer) |
13:38:10 | * | Ven joined #nim |
13:39:24 | * | OnO quit (Quit: My iMac has gone to sleep. ZZZzzz…) |
13:41:43 | * | Ven quit (Client Quit) |
13:47:32 | * | datanoise joined #nim |
13:51:59 | filwit | for the sake of completeness (and future referral) I made a gist illustrating what I was talking about earlier: https://gist.github.com/PhilipWitte/31b32858e23604bd925e |
13:52:33 | * | datanoise quit (Ping timeout: 246 seconds) |
13:54:15 | notfowl | -_- |
13:54:41 | * | Ven joined #nim |
13:56:55 | * | Perelandric joined #nim |
13:58:47 | * | Perelandric quit (Client Quit) |
13:59:57 | * | pregressive joined #nim |
14:00:46 | * | kashyap_ quit (Ping timeout: 246 seconds) |
14:05:07 | fffff | lol filwit, proc move[T: Positionable](s:var T, v:Vector) |
14:05:24 | fffff | or even proc move](s:var Positionable, v:Vector) |
14:05:36 | fffff | inheritance is evil |
14:06:51 | fffff | tbh a lot of nightmare would be avoided in OOP if only 1 level of inheritance was enforced |
14:07:01 | fffff | (not talking about nim) |
14:08:24 | * | dtscodeJR joined #nim |
14:09:58 | * | datanoise joined #nim |
14:09:59 | filwit | fffff: the 'move' proc isn't the only thing about this idea.. it's also about composing a type's memory layout declaratively |
14:10:11 | filwit | but i must do other things now |
14:10:27 | fffff | just compose the concepts if you must |
14:10:59 | fffff | x is Movable, x is Drawable |
14:11:03 | filwit | no |
14:11:11 | fffff | ok Javanim |
14:11:14 | filwit | tye *memory* layout of the type, not the concept |
14:11:22 | filwit | javanim? |
14:11:28 | filwit | what does that even mean? |
14:12:19 | filwit | anyways, i don't care. I need to do other things now. |
14:12:42 | * | dtscodeJR is now known as fioco |
14:12:46 | * | fioco left #nim (#nim) |
14:13:04 | fffff | use inheritance, there no runtime cost |
14:13:14 | fffff | dont use methods |
14:13:24 | filwit | lol, yes there is... |
14:13:32 | filwit | do a sizeof on your types to prove it |
14:14:31 | filwit | it's impossible to get runtime inheritance "is this of that" checks without runtime typeinfo per instance |
14:14:55 | filwit | this is why we have to do "object of RootObj" to make a type inheritable |
14:15:18 | * | BitPuffin|osx joined #nim |
14:15:35 | fffff | then dont use inheritance, make a simple macro |
14:16:04 | fffff | and use concepts for your procs |
14:16:17 | filwit | okay *sigh*.. i must leave now. I'll bbl |
14:17:19 | * | postulance joined #nim |
14:19:41 | * | Ven quit (Ping timeout: 256 seconds) |
14:21:36 | vikaton | is there a flag for bounds checking? |
14:22:05 | fffff | filwit: o and sorry i didnt know there was a cost to inheritance, i always use 'of object' and i dont use inheritance, i dont see the point |
14:22:06 | def- | vikaton: --boundChecks:off |
14:22:08 | def- | or on |
14:22:15 | flyx | does the nim compiler or stdlib provide a feature to syntax-highlight nim code? |
14:22:28 | * | OnO joined #nim |
14:22:31 | def- | flyx: no, but there are a few syntax highlighting tools |
14:22:36 | vikaton | def-, does it have performance overhead in -d:release? |
14:22:47 | def- | vikaton: surely, but I haven't measured how much |
14:23:13 | def- | vikaton: you can check config/nim.cfg for what -d:release implies |
14:23:41 | vikaton | ah |
14:23:48 | vikaton | thanks for reminding me |
14:25:04 | * | fffff quit (Quit: Page closed) |
14:26:39 | vikaton | def-, thoughts? https://gist.github.com/Vikaton/126c07c00527cbcab545 |
14:27:10 | vikaton | I'm adding this onto Nim's common criticism |
14:28:51 | * | coopernu_ joined #nim |
14:28:57 | * | dddddd quit (Ping timeout: 246 seconds) |
14:29:05 | * | Ven joined #nim |
14:30:32 | def- | vikaton: looks ok, but i only took a quick look. It's a wiki, so I guess someone can edit it |
14:31:44 | vikaton | def-, anyone can edit this without permission? https://github.com/Araq/Nim/wiki/Common-Criticisms |
14:34:41 | def- | yes |
14:34:50 | vikaton | o |
14:35:10 | def- | anyone with a github account |
14:35:15 | def- | At least that's how I understand it |
14:35:21 | vikaton | I still need to get this by Araq to make sure everything is on point |
14:40:38 | dom96 | vikaton: That suggests that Nim is in fact terribly unsafe |
14:40:39 | dom96 | which is untrue |
14:40:45 | dom96 | add it to the unofficial FAQ |
14:40:49 | dom96 | as a question "Is Nim unsafe?" |
14:41:56 | vikaton | dom96, I look at it is that if you dont follow those guidelines/use tools that are available (like -nilChecks) then the unsafety is self inflicted |
14:42:05 | vikaton | but usre I can move it to the FAQ |
14:42:15 | * | jubalh quit (Ping timeout: 265 seconds) |
14:46:53 | * | jubalh joined #nim |
14:49:30 | vikaton | dom96, what was that line of code again that chnaged tabs to spaces @ dom96 |
14:49:47 | vikaton | or was that def- who showed me? |
14:50:37 | def- | #! replace(sub = "\t", by = " ") |
14:51:53 | vikaton | ah yes thank you def- |
14:52:04 | notfowl | I'm in favor of a new -d:safety that does what debug does without backtraces |
14:52:15 | notfowl | Is that right |
14:53:06 | vikaton | notfowl, did you see that issie? |
14:53:09 | vikaton | issue* |
14:53:48 | notfowl | Nil checks are something I'll never use though |
14:54:53 | notfowl | & what do sum types have to do with safety |
14:55:27 | vikaton | notfowl, you could propose it in this thread https://github.com/Araq/Nim/issues/2809 |
14:56:29 | notfowl | I didn't propose anything |
14:56:46 | vikaton | notfowl, oh nvm then |
14:56:54 | * | yglukhov____ joined #nim |
15:00:37 | * | yglukhov___ quit (Ping timeout: 250 seconds) |
15:01:56 | * | yglukhov____ quit (Ping timeout: 272 seconds) |
15:06:16 | * | rgv151 joined #nim |
15:10:40 | * | darkf quit (Quit: Leaving) |
15:22:06 | * | gsingh93 joined #nim |
15:25:49 | ozra | filwit, notfowl - regarding the composition. I assume you mean what I call 'mixins'. Parts to build a new "class", but without inheritance chains (mixing in those member procs, does not cause multiple inheritance like in C++). Golang (though I personally don't like it) has features for easily delegating composition procs, something which might be glanced at. Composition patterns are nice for common "partial functionalities" one often impl |
15:26:01 | ozra | without them needing any dynamic dispatching. |
15:26:13 | * | nande joined #nim |
15:27:35 | ozra | Say, "decorating" a "class" with an intrusive container (linked list style for instance) |
15:28:09 | reactormonk | Araq, can we just get it over with and move nim to nim-lang? |
15:38:33 | ozra | reactormonk: Does everything "follow over" from the existing repo, etc.? |
15:39:30 | reactormonk | ozra, AFAIK |
15:40:23 | ozra | reactormonk: Cool, one would figure github's got such shit straight, can't be the first time it needs be done of course. |
15:41:58 | * | johnsoft quit (Ping timeout: 255 seconds) |
15:43:13 | * | jubalh quit (Quit: Leaving) |
15:45:02 | dom96 | oh dear http://www.securitytracker.com/id/1032453 |
15:45:19 | * | sepisoad joined #nim |
15:46:34 | vikaton | tis not loading |
15:47:52 | sepisoad | what is boehmgc and how it affects the compiler? |
15:48:05 | reactormonk | sepisoad, different GC. |
15:48:26 | sepisoad | reactormonk, lol, i know |
15:48:38 | reactormonk | sepisoad, your question didn't imply it, but good :-) |
15:48:42 | sepisoad | but what difference does it make |
15:50:51 | coffeepot | boemGC is thread global and IIRC stops threads to collect. Correct me if wrong though. |
15:50:53 | reactormonk | vikaton, loaded, PCRE Heap Overflow in Regex Processing Lets Users Execute Arbitrary Code |
15:51:26 | vikaton | Oh |
15:52:36 | vikaton | reactormonk: do the stars stay? |
15:52:40 | federico3 | maybe a "writing secure code" wiki page could help? |
15:52:47 | vikaton | not that it matters, jw for personal use |
15:53:01 | * | johnsoft joined #nim |
15:54:17 | reactormonk | dom96, is nre or re using PCRE? Or both? Or neither? |
15:54:33 | dom96 | both use pcre |
15:54:35 | rgv151 | both |
15:55:06 | reactormonk | well, fuck |
15:59:04 | ozra | Holy guacamole! |
16:00:03 | * | n0v left #nim ("Leaving...") |
16:00:25 | dom96 | holy nimmers |
16:00:36 | vikaton | dom96, nimbians >:( |
16:00:54 | ozra | But then again.. You must accept RE's from outside of the app for it to happen. *unlikely* (unless you take re's unfiltered from a text input on a web page or something (*unlikely*) |
16:01:11 | ozra | Comfortably Nimb |
16:01:42 | * | vendethiel quit (Ping timeout: 246 seconds) |
16:02:14 | ozra | If it's in a highlighter etc. well then it's already something the use chosen to use on they're puter. Could as well have 'sudo apt-get install hdd-destroyer'... |
16:02:27 | ozra | (regarding the PCRE bug ofc.) |
16:05:18 | ozra | Anyone know why destructors aren't auomatically called for matching types, and need the `new` style tying? Just effort required, or are there any hindering road blocks? |
16:06:00 | ozra | Araq, dom96, reactormonk, anyone? ^ |
16:06:29 | dom96 | ozra: destructors are still experimental, i'm sure they will be improved over time. |
16:07:27 | ozra | dom96: Aha, kind of a late addition then? Are there any fuzzy areas about them currently? Anywhere I can read up more (source ofcourse)..? |
16:07:36 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
16:07:39 | * | fioco joined #nim |
16:07:49 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
16:07:51 | dom96 | ozra: Only source of info I know of is the manual. |
16:08:10 | * | Arrrr joined #nim |
16:08:30 | fioco | Dom96 hello |
16:08:33 | fioco | I'm toad |
16:08:41 | fioco | Thanks for the minecraft idea |
16:08:56 | fioco | I came up with something else and would like your opinion |
16:09:07 | fioco | Nim Web Applets |
16:09:31 | ozra | dom96: Ok, thanks, using GC is convenient, but I imagine with good constructors, a combo of composed objs with ptrs internally, would get freed by outer objs GC destruction - thus reducing work for GC. Could be a good pattern in _sligthly more performance needy code_ |
16:09:41 | dom96 | fioco: how about you implement a web sockets library? |
16:09:53 | fioco | We don't have one? |
16:10:28 | notfowl | ozra, at the data level for composition you want components. components can store data or behavior giving you a base object type that is a bag of components |
16:10:33 | dom96 | fioco: don't think so |
16:10:38 | * | xificurC quit (Read error: Connection reset by peer) |
16:10:48 | fioco | I'll do that then |
16:10:50 | fioco | Thanks |
16:11:48 | notfowl | i've also seen systems where components only store data and all behavior is handled by single-purpose subsystems |
16:11:49 | * | coopernu_ quit () |
16:11:51 | fioco | We have one |
16:12:07 | fioco | Nim-lang.org/docs/net.html |
16:12:07 | ozra | notfowl: Yes, this is what I'd called composition. There seems to be some different ideas around here for us what we call different concepts, might have to de-facto standardize phrases for nim perhaps :-) Anyway - I was concerned more with the construction/destruction by GC thingie in my statement.. |
16:12:28 | ozra | notfowl: If I didn't misunderstand... |
16:12:38 | dom96 | fioco: That's system sockets |
16:12:39 | dom96 | fioco: https://en.wikipedia.org/wiki/WebSocket |
16:14:21 | fioco | So one that implements tcp/udp? |
16:15:17 | * | Jesin quit (Quit: Leaving) |
16:15:19 | notfowl | ozra, people who are afraid of the gc usually havent tried to write a game in it and see how much crazy things they have to have going on at once for it to slow down |
16:15:43 | fioco | Or tcp only, I guess |
16:15:48 | fioco | I'll look at that |
16:15:53 | * | coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
16:16:09 | dom96 | fioco: it's a protocol |
16:16:21 | reactormonk | sepisoad, for the gc stuff, boehm GC seems to be linked from an outside lib, maybe you'll find stuff by googling |
16:16:37 | fioco | Yeah |
16:16:40 | fioco | I get it now |
16:16:42 | fioco | Will do |
16:17:49 | sepisoad | reactormonk, actually I'm looking for a way to get rid of thread local heap and share a ref variable between threads |
16:19:16 | reactormonk | sepisoad, good old global mutable variable? |
16:19:34 | sepisoad | reactormonk, YES |
16:19:57 | Xe | yeah websocket support is kinda a blocker for some of my projects |
16:20:39 | def- | Xe, fioco: there is this already, but not sure how far it is: https://github.com/onionhammer/onion-nimrod/tree/master/websockets |
16:23:08 | sepisoad | reactormonk, what happened dude? |
16:23:38 | reactormonk | sepisoad, nothing, I just never thought to implement such a thing so I wouldn't know how to |
16:23:59 | sepisoad | reactormonk, ok |
16:24:16 | * | Arrrr quit (Ping timeout: 272 seconds) |
16:24:45 | * | Ven joined #nim |
16:26:28 | * | xificurC joined #nim |
16:27:17 | * | NimBot joined #nim |
16:33:07 | * | Arrrr joined #nim |
16:33:35 | ozra | notfowl: I must admit that I am a little "afraid" of gc. Since I come from the C++ camp (though I have coded a lot for nodejs which ofc is GCed). Still think this is the better approach rather then the Rust Javaesque one. |
16:34:28 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
16:35:06 | sepisoad | is a sane to set --threadanalysis:off in order to share ref objects? |
16:35:08 | * | banister joined #nim |
16:36:29 | sepisoad | is it sane to set --threadanalysis:off in order to share ref objects? |
16:36:50 | notfowl | sepisoad, this runs but im pretty sure it would crash if you accessed a philosopher from a different thread http://rosettacode.org/wiki/Dining_philosophers#Nim |
16:38:46 | sepisoad | notfowl, OK, OK, but i need to share a ref variable Yet nim would not let me do that unless i turn thread analysis off |
16:39:47 | dom96 | sepisoad: Turning thread analysis off is not safe. |
16:39:55 | sepisoad | notfowl, I tried every possible solution, none worked for me, at least I don't know a better way |
16:39:56 | notfowl | sepisoad, if you needed to do that you would store an array of (mutex,Philosopher) afaik |
16:40:19 | sepisoad | what if I use locks? |
16:40:32 | notfowl | thats what i mean |
16:40:48 | dom96 | sepisoad: What are you trying to do? (Sorry, haven't kept up with the discussion) |
16:41:19 | gokr | ozra: "Afraid" of gc? The Nim GC is basically a ref count, isn't that what most C++ code uses these days anyway? |
16:41:34 | sepisoad | i have a socket which is listening in a separate thread |
16:41:46 | notfowl | sepisoad, maybe you could use the mutex to have a philosopher whos waiting on a fork leer at another philosopher :p |
16:41:53 | sepisoad | i want to close the socket from main thread |
16:42:12 | sepisoad | though i have to share the thread between these two threads |
16:42:12 | dom96 | oh you're still trying to do that? |
16:42:19 | sepisoad | YESSSSSSSSSSSS |
16:42:25 | dom96 | Didn't I already tell you what to do? |
16:42:49 | sepisoad | to be honest, i didn't get what you said :P |
16:42:51 | dom96 | like I keep saying, you don't need threads. |
16:43:09 | dom96 | async is already a form of parallelism. |
16:43:33 | sepisoad | after all, don't you think this thread local GC is somewhat a barrier>? |
16:44:24 | sepisoad | yes, but when you await for recv() function the async func would block |
16:44:52 | dom96 | no, it wouldn't |
16:45:01 | notfowl | sepisoad, there are allocShared, createShared functions, they give you pointers to global memory that you can manage yourself |
16:45:02 | dom96 | await yields |
16:46:24 | dom96 | You call asyncdispatcher.poll() |
16:46:32 | dom96 | and it does its work until an 'await' happens |
16:46:36 | dom96 | then it returns |
16:46:51 | dom96 | then you can call poll on your UI stuff |
16:47:08 | dom96 | then back to poll'ing asyncdispatcher again |
16:47:09 | dom96 | and so on |
16:48:45 | * | yglukhov____ joined #nim |
16:48:50 | sepisoad | :( maybe a sample code would help me, sorry dom96 for bothering, but I am so much confused |
16:48:51 | * | Siecje joined #nim |
16:48:59 | * | filwit quit (Quit: Leaving) |
16:49:16 | dom96 | sepisoad: can you give me a link to your code again? |
16:49:28 | sepisoad | yes |
16:49:31 | sepisoad | wait a min |
16:50:52 | Arrrr | a nim? |
16:51:40 | ozra | gokr: I'm not saying it's justified, I just have some 'performance brain damage' ;-) Do you refer to sharedptr etc.? Well, I've always used strict construction/deconstruction in the code bases I've worked with. I even implement destructso in javascript (manually called) of habit(!!) haha. Some habits... That said, I do see the benefits of GCing. |
16:53:02 | gokr | ozra: It's of course always depending on domain etc. But being afraid of GC always makes me wonder which domain we are talking about. Most of us work in domains where its not a problem. |
16:53:34 | * | Jesin joined #nim |
16:54:49 | ozra | gokr: In the project where I'm looking to use Nim (but I must come up with a good justification for the other lads..) it's not really a problem. The onlly things I've coded ever where it would have is when I coded real time audio effects. There it's basically impossible to let a GC in, only _hard_ realtime. But, that was some time ago. Not current :) |
16:55:14 | gokr | right. |
16:56:31 | ozra | This is why Nim has gotten my focus in the quest for leaving C++. Rust is so stuck to formalistic memory adoration that the apps will be unsafe cause you have no dev time left to code tests or the app, haha. |
16:56:34 | gokr | It seems to me the GC in Nim is a neat balance. Its non moving so easy with integrations, its thread local so doesn't disturb other threads, it handles cycles. It can be controlled. |
16:57:12 | gokr | Exact. I love experimental languages, no doubt. But I think lots of people are hopping onto a wagon that's not really fitting. |
16:57:16 | ozra | gokr: Yes, that was some of the things that attracted me to Nim also, that it's opt out _if_ needed. |
16:57:45 | gokr | I mean, if you have a hundred developers to throw at making a new super fast ultra parallell web browser - fine. But most of us need to get shit done in much less time and hurt. |
16:59:00 | ozra | Exactly my thoughts - they've gotten "home blind", (how would you say that in english, haha), because _they've_ got the resources, and seem to forget to hard dead lines of reality. |
16:59:12 | ozra | *the hard*.. |
16:59:31 | gokr | What Nim needs to really thrive on the thread local gc - is of course really neat mechanisms for doing inter thread communication etc. I haven't checked out that part of Nim - but going "shared nothing" is a good path IMHO. Erlang kinda shows that. |
17:00:35 | ozra | gokr: Yes, I think the benefit for the GC far outweighs other factors. I have yet to play with the threading in Nim, I'm happy that it's there and is near the heart of the lang. |
17:00:59 | gokr | So a bit of cool non blocking queues and other stuff - and the Nim thread model starts paying I think. And I do know Araq has stuff brewing in that department. |
17:01:19 | gokr | We would need a bit of articles on it though. |
17:01:42 | ozra | Sound cool :-) Yeah articles are always good :-) |
17:01:46 | gokr | Currently we aren't doing multi threaded Nim at 3DICC - but we will later down the road when we tackle our server side. |
17:01:47 | * | pregressive quit (Remote host closed the connection) |
17:01:52 | * | Ven joined #nim |
17:03:36 | ozra | gokr: Sounds good, one step at the time. I'm digging in to the compiler both to learn and to be able to justify that it won't be block if there's a bug, for justifying using this on the project. It is a bit of a chance, being pre 1.0 etc. But I believe the proj will benefit over a years time, compared to implementing in C++. So I really hope I can persuade :) |
17:04:18 | ozra | gokr: Are there any specific showstoppers you've encountered in your project? |
17:04:33 | gokr | It seems to me our version number is slightly misleading. I mean... I would consider it being a 0.9-ish version. |
17:04:39 | gokr | No, no showstoppers at all. |
17:04:46 | gokr | But we do have Araq :) |
17:04:53 | ozra | gokr: True :) |
17:05:05 | gokr | But... so far very solid for us. |
17:05:53 | ozra | gokr: Well, I use semver and think it should be universal. There 0.9.0 means nothing other than "9th feature addition". Pre 1.0 it's no biggie imo. |
17:06:35 | gokr | Well, ok, I am not read up on semver - but still, it feels definitely like a usable tool. |
17:07:04 | * | brson joined #nim |
17:07:12 | gokr | And interfacing with C++ has been working superb so far for us (Urhonimo). |
17:07:41 | ozra | gokr: It is just soo simple, and so self evident once you read it. Just 'the way it should be' sort of :) http://semver.org/ - read the summary, takes 30 secons, and that's about all there is to it :) |
17:09:22 | gokr | Yeah, well, its basically what one would guess. But... it doesn't really say much about <1.0 does it? |
17:09:25 | sepisoad | dom96, sorry for being late |
17:09:34 | sepisoad | this is the link to code: https://gist.github.com/sepisoad/e7d0b03a6451fe5aa975 |
17:10:05 | ozra | gokr: That is good to hear. We do have shitloads of C++ code. But the idea here is for a clean slate implementation, so I think manual porting with needed rewriting can be done for the parts that can / should be re-used. I'm gonna investigate a bit more. But it's leaning heavily towards Nim, as for me, but still, I'm gonna have to make a strong case for it. (That's why I'm tigthening up the tester, etc. that can show of some stable ground |
17:10:58 | ozra | gokr: No, just follow the same pattern, but the rules are not 'hard' below 1.0. Once beyond 1.0, you follow them strictly. |
17:25:04 | * | cyraxjoe quit (Ping timeout: 272 seconds) |
17:28:03 | dom96 | sepisoad: thank you |
17:29:52 | * | Varriount_ joined #nim |
17:31:27 | * | doxavore joined #nim |
17:31:43 | * | ingsoc quit (Quit: Leaving.) |
17:32:52 | * | Varriount quit (Ping timeout: 252 seconds) |
17:41:13 | * | cyraxjoe joined #nim |
17:41:16 | * | pregressive joined #nim |
17:49:19 | * | sepisoad quit (Ping timeout: 244 seconds) |
17:59:46 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:03:57 | dom96 | had to get IUP DLLs from Sourceforge. |
18:04:09 | dom96 | I truly hope they get their act together, there is too much important stuff on Sourceforge. |
18:11:51 | reactormonk | dom96, let's hope not for too long... |
18:12:19 | * | gokr_ quit (Ping timeout: 245 seconds) |
18:15:58 | dom96 | argh |
18:16:11 | dom96 | Pass this along to sepisoad in case i'm not here: https://gist.github.com/dom96/eba8781220ee2c015c1d |
18:18:37 | vikaton | how do I do code in forums? |
18:19:25 | notfowl | vikaton: ```nim \n code \n ``` |
18:19:39 | vikaton | oh nice |
18:23:01 | dtscode | dom96: Why not just start putting up mirrors on github? |
18:23:17 | dom96 | dtscode: go on, do it. |
18:23:27 | dtscode | :c |
18:23:46 | dtscode | I... err... have that meeting about that thing with that guy |
18:24:02 | dtscode | but I totally would otherwise |
18:25:05 | * | fioco left #nim ("See") |
18:25:22 | flyx | in a method, how can I call the overridden base method? |
18:25:54 | flyx | casting the object to the base class still dispatches to the overriding method |
18:26:06 | Arrrr | use proccall |
18:26:21 | Arrrr | + casting to base |
18:28:20 | flyx | works, thanks |
18:36:49 | flyx | btw, is anyone in here attending gpn15? |
18:37:43 | dtscode | I don't know what that is so probably not |
18:38:03 | flyx | https://entropia.de/GPN15 started today |
18:51:35 | * | sepisoad joined #nim |
18:55:08 | * | johnsoft quit (Ping timeout: 272 seconds) |
18:57:12 | vikaton | hey sepisoad , did you get my tweet |
18:57:15 | * | davidhq joined #nim |
18:59:34 | sepisoad | vikaton, no, i got this error |
18:59:35 | sepisoad | c:\nim\lib\pure\asyncdispatch.nim(1196, 8) Error: 'cb' is not GC-safe as it accesses 'nameIterVar' which is a global using GC'ed memory |
19:01:09 | dom96 | sepisoad: with my code? |
19:01:14 | dom96 | compile without --threads:on |
19:01:25 | sepisoad | yes, ok |
19:02:29 | sepisoad | WOW, it works? |
19:02:50 | sepisoad | dom96, thanks dude, really appreciate it |
19:03:05 | dom96 | of course it works ;) |
19:03:07 | dom96 | np |
19:04:37 | * | sepisoad_ joined #nim |
19:05:17 | vikaton | sepisoad_: is Nim still one of the worst for parallelism ? xD |
19:05:42 | sepisoad_ | YES :P lol |
19:05:46 | sepisoad_ | just kiddin |
19:06:01 | sepisoad_ | man I love nim |
19:06:27 | sepisoad_ | I have to learn more about asyncdispatch |
19:06:36 | dtscode | ^ |
19:07:36 | dom96 | IUP is pretty cool actually. |
19:07:40 | * | johnsoft joined #nim |
19:07:45 | jackv | are there any good primers on asyncdispatch that I could read? |
19:08:04 | * | sepisoad quit (Ping timeout: 255 seconds) |
19:08:41 | dtscode | I just read the module page then bug dom96 until he finally gives me help |
19:09:19 | jackv | so there's not much documentation outside the module page? |
19:10:03 | dtscode | Probably not |
19:11:18 | dom96 | I did write a pretty lengthy blog post about it a long time ago |
19:11:21 | dom96 | never finished it though |
19:11:46 | vikaton | How I start? |
19:13:07 | dtscode | Start what? |
19:14:30 | shevy | I assume he means with nim |
19:14:41 | dtscode | Hes already started with nim though |
19:16:01 | * | jh32 quit (Ping timeout: 264 seconds) |
19:23:27 | * | OnO quit (Quit: My iMac has gone to sleep. ZZZzzz…) |
19:23:59 | * | Siecje quit (Ping timeout: 256 seconds) |
19:24:10 | * | Siecje joined #nim |
19:26:45 | * | rgv151 quit (Quit: Leaving...) |
19:27:36 | * | jh32 joined #nim |
19:30:35 | vikaton | No I was talking about the blog |
19:30:40 | vikaton | How I start: Nim |
19:31:52 | * | Matthias247 joined #nim |
19:32:49 | * | davidhq quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
19:37:19 | * | Arrrr quit (Quit: WeeChat 1.2) |
19:46:12 | * | buttplug joined #nim |
19:48:59 | * | matkuki joined #nim |
19:50:16 | shevy | ohhh dom96's blog |
19:50:23 | shevy | he started it |
19:50:26 | shevy | but he never finished it |
19:50:39 | shevy | Part II: How to finish a blog post |
19:50:59 | Xe | that's def-'s post |
19:52:16 | Xe | nimsuggest doesn't compile on 0.11.2 |
19:52:18 | * | Senketsu quit (Quit: Leaving) |
19:58:56 | * | davidhq joined #nim |
19:59:36 | dtscode | A lot of stuff doesn't compile it seems |
20:01:26 | * | gsingh93 quit (Ping timeout: 276 seconds) |
20:04:32 | * | vendethiel joined #nim |
20:09:55 | * | dddddd joined #nim |
20:10:39 | * | Siecje1 joined #nim |
20:11:18 | vikaton | I gave a presentation on Nim in my AP Java class |
20:11:51 | flaviu | AP Java? ;) |
20:12:07 | vikaton | Yup |
20:12:30 | vikaton | it was post AP exam and we had to pick something and make a project out of it |
20:12:33 | vikaton | I did Nim |
20:12:57 | * | Siecje quit (Ping timeout: 244 seconds) |
20:13:38 | * | matkuki quit (Quit: ChatZilla 0.9.91.1 [Firefox 38.0.5/20150525141253]) |
20:16:34 | * | filcuc joined #nim |
20:20:42 | vikaton | will Aporia ever support multiple themes? |
20:26:40 | * | fizzbooze joined #nim |
20:32:18 | dom96 | vikaton: it already does? |
20:33:45 | vikaton | oh whoops |
20:34:15 | * | davidhq quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
20:34:22 | * | Trustable joined #nim |
20:37:57 | * | Ven joined #nim |
20:42:25 | vikaton | how can I have multiple #! replace comments? |
20:50:58 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
20:52:07 | BitR | I've updated the nimsuggest vim completion and can now deliver completions in about .05 seconds after changing to a threaded setting |
20:57:42 | BitR | Oh and nimsuggest doesn't seem to compile in the devel branch, but the tagged version v0.11.2 works quite well |
20:59:00 | dom96 | hrm, perhaps it's time I test it. |
21:00:52 | * | Ven joined #nim |
21:03:06 | * | shevy left #nim ("I'll be back ... maybe") |
21:03:38 | * | matkuki joined #nim |
21:10:14 | * | BlaXpirit quit (Quit: Quit Konversation) |
21:10:19 | matkuki | What mechanism does 'Dynlib pragma for import' use to parse the string? pegs, re, ...? Can you point me to the code? |
21:13:42 | matkuki | def-, dom96: Can anyone help, please? |
21:14:40 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
21:15:24 | dom96 | matkuki: I'm not sure, but I think it's just some simple parser. |
21:15:38 | dom96 | matkuki: Why do you need this info? |
21:16:39 | * | doxavore quit (Quit: I said good day, sir.) |
21:18:00 | matkuki | I'm updating the python library. |
21:18:01 | matkuki | In the current version, you have to manually list every library name individually (python27.dll, python26.dll, ...), use loadLib and check the result. |
21:18:24 | BitR | matkuki: Guess you're looking for |
21:18:26 | BitR | compiler/pragmas.nim |
21:18:31 | matkuki | I want to upgrade this to what 'Dynlib pragma for import' does. |
21:19:16 | matkuki | BitR: I'm looking at that module but can't pinpoint the code that does this. |
21:20:09 | BitR | Well, there's getLib that seems to take in the name of the library to load |
21:20:28 | matkuki | dom96: Thougt I would just use the same code as that pragma uses. |
21:20:37 | federico3 | a tutorial on writing kernel modules in Nim would be nice |
21:21:04 | matkuki | I'll make the simple parser if I don't find it, no preblem. |
21:22:02 | * | datanoise quit (Ping timeout: 276 seconds) |
21:23:17 | dom96 | matkuki: options.libCandidates is the code that parses it I think |
21:24:29 | matkuki | dom96: Thank you. |
21:24:49 | matkuki | BitR: Thanks for helping. |
21:25:06 | flaviu | *is* it possible to write kernel modules in Nim? |
21:25:16 | dom96 | flaviu: of course |
21:25:26 | flaviu | without manual memory mangement? |
21:26:22 | * | yglukhov____ quit (Quit: Be back later ...) |
21:29:40 | * | jubalh joined #nim |
21:31:31 | * | datanoise joined #nim |
21:35:56 | * | Siecje1 quit (Read error: Connection reset by peer) |
21:37:07 | * | Siecje joined #nim |
21:50:01 | * | johnsoft quit (Ping timeout: 264 seconds) |
21:50:46 | * | jubalh quit (Quit: Leaving) |
21:56:24 | * | johnsoft joined #nim |
22:00:57 | * | filcuc quit (Ping timeout: 250 seconds) |
22:04:07 | * | matkuki quit (Quit: ChatZilla 0.9.91.1 [Firefox 38.0.5/20150525141253]) |
22:04:38 | * | filcuc joined #nim |
22:08:51 | * | sepisoad__ joined #nim |
22:12:25 | * | sepisoad_ quit (Ping timeout: 264 seconds) |
22:24:46 | * | xificurC quit (Remote host closed the connection) |
22:25:23 | * | xificurC joined #nim |
22:27:57 | dom96 | PSA: Nimsuggest is now in this repo: https://github.com/nim-lang/nimsuggest |
22:31:33 | * | sepisoad__ quit (Ping timeout: 256 seconds) |
22:31:36 | * | vendethiel quit (Ping timeout: 272 seconds) |
22:33:11 | * | phI||Ip quit (Ping timeout: 245 seconds) |
22:33:11 | * | r-ku quit (Ping timeout: 245 seconds) |
22:34:59 | * | r-ku joined #nim |
22:35:35 | * | phI||Ip joined #nim |
22:36:09 | * | Trustable quit (Read error: Connection reset by peer) |
22:38:27 | * | Matthias247 quit (Read error: Connection reset by peer) |
22:40:11 | jaco60 | dom96, should i miss something... How to compile nimsuggest ? |
22:41:49 | dom96 | jaco60: nimble install nimsuggest |
22:42:37 | jaco60 | nimsuggest.nim(12, 68) Error: cannot open 'sexp' |
22:44:26 | dom96 | you need a newer version of nim |
22:45:13 | jaco60 | i have the release one... it works only with dev branch ? |
22:45:40 | dom96 | yeah |
22:46:35 | jaco60 | ok, will wait an update of the nim Arch package... |
22:49:01 | * | filcuc quit (Quit: Konversation terminated!) |
23:01:29 | * | Siecje quit (Ping timeout: 276 seconds) |
23:02:25 | * | Siecje joined #nim |
23:03:14 | * | Kingsquee joined #nim |
23:22:31 | * | Siecje1 joined #nim |
23:23:37 | * | Siecje quit (Ping timeout: 264 seconds) |
23:27:21 | flaviu | jaco60: you'll be waiting a while |
23:29:05 | * | pregressive quit (Remote host closed the connection) |
23:39:29 | * | TEttinger joined #nim |
23:42:06 | * | fizzbooze quit (Ping timeout: 252 seconds) |
23:44:20 | jaco60 | flaviu, or i will deinstall the arch package and install manually the dev branch... |
23:49:57 | * | datanoise quit (Ping timeout: 244 seconds) |
23:52:16 | flaviu | I'm pretty sure the AUR has nim-git too. |
23:52:52 | jaco60 | flaviu, yep, you're right |
23:53:43 | * | datanoise joined #nim |