00:02:30 | FromGitter | <zacharycarter> def-pri-pub: besides the code changes you made - did you have to do anything else to get transparency working with zengine? |
00:02:45 | FromGitter | <zacharycarter> like did you have to do anything in your game / test code or were the changes just in zgl? |
00:05:00 | adeohluwa | "spawn takes a GC safe call expression" |
00:05:20 | adeohluwa | can someone pls explain to me in baby english |
00:06:27 | FromGitter | <zacharycarter> the proc you're passing to spawn can't touch GC'd memory |
00:06:43 | FromGitter | <zacharycarter> so basically no globals, no memory residing in other thread local heaps |
00:08:03 | FromGitter | <zacharycarter> is that baby enough for you? |
00:08:16 | FromGitter | <zacharycarter> I can get babier |
00:08:22 | * | zachk quit (Quit: night) |
00:16:57 | jonh | i say get babier |
00:20:34 | * | libman ponders {.pure.} vs {.baby.} |
00:22:16 | libman | {.doubleplusDisorganizedParanoidSchizophrenia.} |
00:22:25 | * | itPuffin|osxB joined #nim |
00:23:29 | * | BitPuffin|osx quit (Ping timeout: 248 seconds) |
00:26:59 | FromGitter | <zacharycarter> https://imgur.com/a/RYL5S |
00:27:09 | FromGitter | <zacharycarter> finally got my roguelike font rendering down |
00:34:54 | adeohluwa | FromGitter: I'll d say that's PHD level stuff |
00:34:56 | FromGitter | adeohluwa, I'm a bot, *bleep, bloop*. I relay messages between here and https://gitter.im/nim-lang/Nim |
00:37:04 | FromGitter | <ephja> don't engage with the bot! |
00:39:04 | libman | ((No one knows I'm a bot too.)) |
00:39:46 | adeohluwa | :D |
00:42:44 | adeohluwa | I'm guessing it has to do with using a global variable |
00:42:59 | adeohluwa | or mutable variable inside that proc |
00:47:14 | adeohluwa | solved guyz |
00:47:50 | adeohluwa | started commenting out likely suspects till nim error msgs gave me a clear msg of what was wrong |
00:48:13 | adeohluwa | the proc was accessing mutable global variables |
00:49:13 | * | def-pri-pub joined #nim |
00:49:13 | * | def-pri-pub quit (Changing host) |
00:49:13 | * | def-pri-pub joined #nim |
01:20:47 | * | Jesin quit (Quit: Leaving) |
01:51:40 | adam12 | HastyScribe is pretty awesome. |
01:52:44 | adam12 | The repo containing this handy tidbit too: http://crossgcc.rts-software.org/doku.php?id=compiling_for_linux |
01:54:53 | * | chemist69 quit (Ping timeout: 255 seconds) |
01:57:27 | * | programisto quit (Ping timeout: 252 seconds) |
01:58:38 | adeohluwa | choosenim yells IOError |
01:58:47 | adeohluwa | on Ubuntu here |
01:58:55 | adeohluwa | am I doing anything wrong? |
01:59:01 | * | programisto joined #nim |
01:59:18 | adeohluwa | I pretty much copy pasted the curl link |
02:01:15 | * | dddddd quit (Remote host closed the connection) |
02:06:49 | * | def-pri-pub quit (Ping timeout: 240 seconds) |
02:08:44 | * | chemist69 joined #nim |
02:52:44 | * | def-pri-pub joined #nim |
02:52:44 | * | def-pri-pub quit (Changing host) |
02:52:44 | * | def-pri-pub joined #nim |
03:09:19 | * | libman quit (Quit: Connection closed for inactivity) |
03:14:18 | * | endragor joined #nim |
03:14:18 | * | endragor quit (Remote host closed the connection) |
03:14:33 | * | endragor joined #nim |
03:23:39 | * | jsgrant joined #nim |
03:34:47 | * | def-pri-pub quit (Quit: leaving) |
03:53:32 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
04:00:21 | * | vlad1777d quit (Ping timeout: 240 seconds) |
04:06:23 | * | sdw quit (Ping timeout: 248 seconds) |
04:25:33 | * | adeohluwa quit (Quit: Connection closed for inactivity) |
04:29:44 | * | libman joined #nim |
04:53:07 | * | Ven`` joined #nim |
05:02:46 | * | Ven`` quit (Ping timeout: 264 seconds) |
05:16:43 | * | gokr joined #nim |
05:29:09 | * | Nobabs27 quit (Quit: Leaving) |
05:59:08 | * | jsgrant quit (Ping timeout: 240 seconds) |
06:03:29 | * | BigEpsilon joined #nim |
06:13:36 | * | jsgrant joined #nim |
06:19:22 | * | mahmudov quit (Ping timeout: 260 seconds) |
06:21:37 | * | PMunch joined #nim |
06:28:44 | FromGitter | <Varriount> adeohluwa: Does it give a traceback? |
06:29:25 | * | rauss quit (Read error: Connection reset by peer) |
06:31:38 | * | rauss joined #nim |
06:32:19 | * | rauss quit (Client Quit) |
06:35:18 | * | nsf joined #nim |
06:38:20 | * | gokr left #nim (#nim) |
06:41:04 | FromGitter | <Varriount> @dom96 Does the async framework currently allow for pluggable transport implementations, like if I want to communicate with a serial port? |
06:45:30 | * | Vladar joined #nim |
06:49:38 | * | endragor quit (Remote host closed the connection) |
06:52:10 | libman | The EIN stack: Etherium, IPFS, Nim. :P |
06:53:26 | * | jjido joined #nim |
06:54:18 | libman | EIN blockchain! EIN speicherverfahren! EIN programmiersprache! |
06:54:31 | * | Yardanico joined #nim |
07:01:36 | FromGitter | <mratsim> I borked my Nim install pretty bad :/ ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ wasreproducing this so only import is sequtils [https://gitter.im/nim-lang/Nim?at=59c363cf614889d47522a338] |
07:01:42 | FromGitter | <mratsim> https://github.com/nim-lang/Nim/issues/6406 |
07:03:00 | * | Pisuke joined #nim |
07:03:18 | Araq | mratsim: Used choosenim? |
07:03:32 | FromGitter | <mratsim> yes |
07:03:33 | Araq | libman: it's EINE programmiersprache. |
07:03:59 | Araq | does the error occur too when you don't use it? |
07:04:51 | FromGitter | <mratsim> I didn’t try |
07:04:52 | * | MyMind quit (Ping timeout: 260 seconds) |
07:05:26 | FromGitter | <mratsim> what is strange is when I’m in one of Arraymancer subdue I get ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59c364b61081499f1f57bf28] |
07:05:47 | FromGitter | <mratsim> subdir* |
07:05:57 | FromGitter | <mratsim> even without importing it |
07:06:50 | Araq | because the import has nothing to do with your problem |
07:09:51 | FromGitter | <mratsim> Works on linux (with choosenim), borked on my mac with choosenim. I’ll check this weekend further. |
07:10:44 | * | yglukhov joined #nim |
07:11:34 | * | yglukhov quit (Remote host closed the connection) |
07:11:47 | * | yglukhov joined #nim |
07:11:53 | * | rokups joined #nim |
07:15:22 | * | endragor joined #nim |
07:19:35 | * | endragor quit (Ping timeout: 240 seconds) |
07:23:22 | * | claudiuinberlin joined #nim |
07:25:03 | * | claudiuinberlin quit (Client Quit) |
07:25:05 | * | jjido quit (Ping timeout: 240 seconds) |
07:25:42 | * | Yardanico quit (Remote host closed the connection) |
07:27:39 | * | claudiuinberlin joined #nim |
07:28:15 | * | Yardanico joined #nim |
07:31:00 | FromGitter | <mratsim> @Araq, for https://github.com/nim-lang/Nim/issues/6387, I will export a dummy `_`symbol, I checked with tuple destructuring, there is no issue there. The symbol is not used for anything else right? And there is no plan for that? |
07:35:27 | * | Arrrr joined #nim |
07:35:50 | Araq | '_' is an identifier that does not trigger an "unused identifier" warning |
07:36:07 | Araq | apart from that it's an ordinary Nim identifier |
07:36:19 | Araq | free for all to (mis)use |
07:37:12 | Araq | why not use a[] instead of a[_] btw? |
07:39:11 | FromGitter | <mratsim> Because for multidimensional I need things like that a[1..2,_,3] |
07:40:09 | FromGitter | <mratsim> You meant "ambiguous call" instead of "unused identifier" right? |
07:40:58 | FromGitter | <mratsim> Which would be Nim equivalent to Python a[1:3,:,3] slicing I think |
07:41:40 | * | mahmudov joined #nim |
07:44:10 | FromGitter | <mratsim> Also a[] would be confusing with dereferencing |
07:44:30 | Yardanico | there's no way to get implementation of an untyped node, right? |
07:45:43 | FromGitter | <mratsim> @Yardanico for your comment let *, b, compiling was surprising because \* was a const |
07:46:24 | * | endragor joined #nim |
07:49:37 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
07:51:03 | Arrrr | The `[]` for dereferencing is ugly. Autodereference when? |
07:51:51 | Yardanico | when {.experimental.} |
07:52:30 | Arrrr | Does it work for ptr too? |
07:54:24 | Arrrr | Mmm yes it does. Now i need a global include. |
07:55:11 | Yardanico | but you can encounter strange bugs, because this is an experimental feature :) |
07:55:11 | FromGitter | <Grabli66> There is a global include? |
07:55:15 | Yardanico | yes |
07:55:23 | FromGitter | <Grabli66> How? |
07:55:31 | Yardanico | you can add includes to your nim config (either global config or project config) |
07:55:45 | FromGitter | <Grabli66> Ok |
07:56:23 | Yardanico | --include:PATH add an automatically included module |
07:56:41 | euantor | Varriount: Regarding async and transports/serial ports, you can fairly easily write code that is async. I've got a serial port library that will eventually have async support using asyncdispatch - just haven't got around to writing the implementation |
07:56:43 | Yardanico | I'll check if you can use it with global nim config |
07:56:44 | FromGitter | <Grabli66> Cool :) |
07:58:24 | Yardanico | hmm yes it does work |
07:58:42 | Yardanico | just add include = "someNimFile" to your nim.cfg in nim/config folder |
07:58:48 | Yardanico | but this can cause many different bugs |
07:59:33 | * | claudiuinberlin joined #nim |
08:09:28 | * | gokr joined #nim |
08:09:44 | gokr | Combining mqtt with Jester seems to work, nice. |
08:10:18 | gokr | Quite obvious ... when I come to think of it. The mqtt lib has its own thread etc. |
08:10:56 | gokr | I am making a little REST-service that is also meant to listen to MQTT. |
08:11:11 | gokr | Using choosenim now btw, neat stuff too. |
08:11:55 | PMunch | Nice |
08:12:01 | * | jjido joined #nim |
08:12:40 | PMunch | dom96, did anyone ever implement the "break route" thing to support stopping a route from a macro? |
08:12:58 | PMunch | Or template for that matter |
08:15:35 | jjido | How is that different PMUNCH? You don't have the route name in the macro? |
08:18:32 | * | Etheco joined #nim |
08:19:19 | PMunch | No, the idea was that all routes would be wrapped in a "block route". That way you could use "break route" in templates/macros to break out of a route |
08:19:38 | PMunch | The current system tries to read the AST and find return statements, which seems like a bit of a hack |
08:19:59 | PMunch | And it doesn't work with templates and macros since they aren't expanded before the check |
08:20:36 | Araq | writing good DSLs is an art :-) |
08:20:43 | Araq | I need to write a book about it |
08:24:57 | jjido | If the macro is not expanded at that point what good will it make to havea special instruction to use? Same issue no |
08:30:45 | PMunch | No, when the template expands it will insert the break statement which will be valid in that context. When it inserts the return statement the route macro has already done it's pass and looked for the return statement, so it won't change that return statement to the proper commands. |
08:31:11 | Araq | can we fix jester to use a sane mechanism? |
08:31:42 | PMunch | The problem is that the route needs to do some things after you return. This would be placed outside the route block so any break route will do the cleanup before the route terminates. |
08:31:58 | PMunch | Araq, yeah that's what we're talking about :) |
08:32:08 | PMunch | Good DSLs are an art indeed |
08:32:39 | Araq | sounds like jester should produce 'block jesterScope:' and have a template onReturn(body) = body; break jesterScope |
08:32:55 | Araq | don't mess with Nim's control flow, use your own |
08:33:13 | PMunch | The Jester one does magic, and magic is seldom good as it means you have no idea what is going on, or even more often don't know that it's doing anything special at all. |
08:33:38 | Araq | every DSL does magic, that's its point. |
08:33:41 | PMunch | Araq, yeah that's my philosophy as well. Don't mess with anything the programmer sees and expects something from. |
08:33:48 | Araq | there is however good magic and bad magic |
08:34:12 | PMunch | dom96, the dark mage :P |
08:34:40 | PMunch | Introducing black magic in his DSLs |
08:35:14 | Araq | it's interesting how actually only 'goto' composes well with DSLs because the labels can be getsym'ed etc |
08:36:12 | Araq | but 'block label + break label' is good enough, no need to change the language |
08:36:42 | PMunch | Yeah I really like the block/break system |
08:37:08 | * | sz0 joined #nim |
08:38:23 | * | fastrom quit (Quit: Leaving.) |
08:44:18 | * | jjido quit (Ping timeout: 240 seconds) |
08:52:07 | * | jjido joined #nim |
08:52:41 | * | vlad1777d joined #nim |
08:55:19 | Yardanico | Araq, it seems you're using ";" everywhere in proc arguments ? :) |
08:55:33 | Yardanico | personal code style? |
08:56:18 | Araq | maybe even in NEP1, but yes I prefer it this way |
08:58:19 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
08:58:41 | PMunch | Any particular reason? |
08:59:40 | * | fastrom joined #nim |
09:00:13 | Yardanico | also, about NEP1 - should I use "result" variable everywhere or rely on Nim to return last statement in a procedure? |
09:01:10 | * | thomasross quit (Remote host closed the connection) |
09:01:37 | * | thomasross joined #nim |
09:02:00 | Yardanico | well - "result" everywhere if I don't need explicit "return" |
09:02:22 | Yardanico | ah, this feature is useful sometimes |
09:02:23 | Yardanico | e.g. |
09:02:45 | Yardanico | proc test(): string = "hi" works because of this feature, right? |
09:03:35 | * | arnetheduck joined #nim |
09:06:43 | Arrrr | except for cases where result becomes more useful, i always use return for procs with more than one line |
09:08:09 | Yardanico | hmm, generally this is the problem and a feature of nim |
09:08:15 | FromGitter | <mratsim> I have a lot of for loops so result for me |
09:08:24 | Yardanico | e.g. you can use many naming styles, return styles |
09:08:35 | Yardanico | more freedom |
09:09:39 | FromGitter | <mratsim> It's much better than JavaScript for that matter ... It's a jungle out there |
09:09:55 | Yardanico | how many package managers are here? for node.js? |
09:10:09 | Yardanico | ah, two |
09:10:58 | Yardanico | ah, also bower |
09:11:19 | Yardanico | ah no, sorry, they're for browser JS :) |
09:14:51 | * | dddddd joined #nim |
09:18:54 | * | jjido quit (Read error: Connection reset by peer) |
09:19:19 | * | libman quit (Quit: Connection closed for inactivity) |
09:22:24 | Araq | Yardanico: prefer to not use 'result' but prefer 'result' over 'return' |
09:22:32 | * | jjido joined #nim |
09:22:40 | Yardanico | Araq, ok |
09:22:56 | Araq | why? prefer shorter code and prefer to not conflate setting the return value with control flow. |
09:23:09 | Yardanico | so in simple procedures I can just use the feature that last statement is returned? |
09:23:53 | Araq | sure |
09:39:50 | dom96 | yeah. Jester needs a lot of love. |
09:41:44 | federico3 | and a threadpool *cough* |
09:42:29 | Yardanico | *cough cough* |
09:46:28 | Yardanico | hmm, are generic term rewriting templates supposed to work? :D |
09:47:12 | Araq | Yardanico: TR macros/templates are not heavily used so there are dragons |
09:47:45 | Yardanico | Araq, yeah, I just made a very stupid TR template (which doesn't do anything good) |
09:48:10 | Yardanico | should I report a compiler crash anyway ? |
09:48:43 | * | claudiuinberlin joined #nim |
09:53:54 | * | fastrom quit (Read error: Connection reset by peer) |
09:54:05 | dom96 | Yardanico: Always |
09:54:21 | Yardanico | well I doubt someone would write this in a real project :D |
09:54:36 | dom96 | doesn't matter, a crash is always a bug |
10:01:15 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:02:37 | Araq | exactly. |
10:03:11 | * | jjido quit (Ping timeout: 248 seconds) |
10:05:43 | * | jjido joined #nim |
10:06:08 | Yardanico | why we can't put whole compiler in one "try" "except" block to give tracebacks without any "koch temp" ? :) |
10:06:18 | Yardanico | ah, sorry, -d:release |
10:06:20 | Yardanico | so doesn't matter |
10:06:55 | * | claudiuinberlin joined #nim |
10:08:36 | Araq | hmm Nim's codegen needs to be rewritten |
10:09:06 | Araq | it shows that I wrote it before I could program |
10:09:37 | * | claudiuinberlin quit (Client Quit) |
10:10:33 | Yardanico | Araq, so big compiler refactor incoming in 2018 ? :) |
10:11:52 | Araq | no, I improve things incrementally |
10:13:15 | FromGitter | <Grabli66> It will generate human readable code? :) |
10:14:03 | * | Snircle joined #nim |
10:15:37 | Yardanico | every code is generally human readable :P |
10:18:02 | FromGitter | <Grabli66> Did you see generated javascript code? There is no need for obfuscation :) |
10:18:38 | Yardanico | did you see generated JS code by emscripten? :) |
10:18:48 | Yardanico | there's no need to make generated code human-readable |
10:24:01 | Arrrr | A good use case is to actually know what was generated for tunning reasons |
10:24:23 | Arrrr | It is easier if you spend less effort on reading the code |
10:35:42 | dom96 | yglukhov: Reel Valley is now featured :) |
10:36:35 | Araq | Arrrr: it's better to look at the asm though |
10:37:06 | yglukhov | yay! such an honor, thanks! =) |
10:37:27 | dom96 | Now I think we need a "Companies using Nim" page |
10:38:09 | FromGitter | <Grabli66> How you will debug generated js code? There are no even generated map file for that. |
10:38:12 | Arrrr | Congratulations yglukhov, hope your experience making your project brings good suggestions to nim |
10:38:13 | Araq | but the code is easy to read anyway, you can even grep for the line number as it ends up in the produced code |
10:39:13 | Arrrr | Yes. Well i just argue that would be easier to read, but is not a common operation. |
10:39:53 | Yardanico | Grabli66: you don't need map file since nim has it's own traceback |
10:40:38 | FromGitter | <zacharycarter> I was wondering about that too @Grabli66 |
10:40:52 | yglukhov | Arrrr: thanks! that is already happening for quite a while =) but i must say that Nim has been a great pleasure to work with, despite some nuances. |
10:42:58 | Arrrr | Dom should interview you and make a blog post |
10:43:43 | * | xzd joined #nim |
10:44:45 | FromGitter | <Grabli66> Yardanico, debug with printing traceback, like our forefathers did that in old days? :) |
10:46:29 | * | xzd quit (Quit: xzd) |
10:51:15 | FromGitter | <zacharycarter> congrats @yglukhov the game is awesome looking |
10:51:26 | * | Yardanico quit (Remote host closed the connection) |
11:00:30 | * | mahmudov quit (Remote host closed the connection) |
11:06:23 | * | sz0 quit (Quit: Connection closed for inactivity) |
11:06:42 | yglukhov | zacharycarter: thank you! :) |
11:11:40 | FromGitter | <zacharycarter> @yglukhov you guys made this all with rod? |
11:11:45 | FromGitter | <zacharycarter> pretty damn impressive |
11:11:50 | yglukhov | yup |
11:13:22 | FromGitter | <zacharycarter> does rod target wasm? |
11:13:54 | yglukhov | zacharycarter: i think it should, but haven't test it yet. |
11:14:06 | FromGitter | <zacharycarter> gotcha - so what target are you hitting for the game? |
11:14:11 | FromGitter | <zacharycarter> emscripten? |
11:14:22 | yglukhov | in any case emscripten is needed afaik, because official clang doesn't support setjmp/longjmp ( |
11:14:37 | FromGitter | <zacharycarter> yeah |
11:14:41 | FromGitter | <zacharycarter> I'm pretty sure you're right |
11:15:00 | FromGitter | <zacharycarter> I'd like to add an emscripten target to zengine but |
11:15:04 | FromGitter | <zacharycarter> lots of work |
11:15:49 | yglukhov | the main problem is assets concept. you'll likely have to make your user think differently about the assets if he targets really crossplatform with asmjs |
11:16:43 | yglukhov | nimx kinda abstracts the distinction away, although the abstraction becomes more complex than just open-file-and-read-it |
11:17:09 | yglukhov | other than that, theres not much difficulties |
11:17:46 | FromGitter | <zacharycarter> true |
11:22:49 | FromGitter | <Grabli66> There are so many game engines. Why you, guys, are writing your engine? |
11:23:02 | yglukhov | zacharycarter: but hey, why aren't you using nimx? =) |
11:23:39 | yglukhov | hopefully we shall get rid of sdl eventually, and for js and asm.js we don't use it already |
11:23:40 | FromGitter | <zacharycarter> @yglukhov when I first started playing with it, a lot of the GUI stuff seemed buggy |
11:24:13 | yglukhov | zacharycarter: but you don't need gui. you can use event handling, and asset management. |
11:24:17 | FromGitter | <zacharycarter> and it seemed overkill if all I was going to use it for was windowing etc |
11:24:34 | FromGitter | <zacharycarter> hrm perhaps I should make a nimx branch then |
11:24:53 | FromGitter | <zacharycarter> @Grabli66 to answer your question - we probably all have different motives but one true fact is there is no Nim game engine |
11:24:58 | * | jjido quit (Ping timeout: 264 seconds) |
11:25:07 | yglukhov | zacharycarter: it might look so, but there's zero runtime overhead if you're just draw your engine from within the root nimx window. |
11:25:14 | FromGitter | <krux02> does anybody know how to get links to files that are stored on github with git lfs via cmd? |
11:25:32 | FromGitter | <zacharycarter> @yglukhov interesting - okay I'll play around with swapping out sdl2 for Nimx tonight |
11:25:59 | FromGitter | <krux02> maybe I can just construct a link |
11:26:03 | FromGitter | <krux02> https://media.githubusercontent.com/media/krux02/opengl-sandbox/master/examples/screenshots/hello_shapes_0000.png |
11:26:07 | Arrrr | playground's create gist seems to be broken |
11:26:23 | yglukhov | also nimx has got distance field fonts with subpixel antialiasing and effects like shadow, stroke, etc |
11:26:33 | yglukhov | might come in handy |
11:26:58 | FromGitter | <zacharycarter> Arrrr: I noticed that yesterday |
11:27:03 | FromGitter | <zacharycarter> I'll have to investigate why today |
11:27:14 | FromGitter | <zacharycarter> @yglukhov I just added those to zengine minus the effects |
11:27:20 | FromGitter | <zacharycarter> @krux02 cool! |
11:27:50 | FromGitter | <krux02> best one is this: https://github.com/krux02/opengl-sandbox/blob/master/examples/screenshots/tetris_0004.png |
11:27:57 | FromGitter | <krux02> äh sorry |
11:28:04 | FromGitter | <krux02> that is my face |
11:28:15 | FromGitter | <zacharycarter> lol |
11:28:22 | yglukhov | zacharycarter: the effects also have no overhead if you dont use them =). the overall concept of nimx is just like nim. pay as you go. |
11:28:24 | FromGitter | <krux02> https://media.githubusercontent.com/media/krux02/opengl-sandbox/master/examples/screenshots/tetris_0004.png |
11:28:34 | FromGitter | <krux02> I have no idea what happened there? |
11:28:43 | yglukhov | so if there's something that violates this, then its a bug to be fixed =) |
11:28:58 | FromGitter | <krux02> the link is correct, for some reason gitter showed my face |
11:28:58 | FromGitter | <zacharycarter> @yglukhov gotcha |
11:29:18 | FromGitter | <zacharycarter> krux02 I built tetris for zengine |
11:29:22 | FromGitter | <zacharycarter> but it's not 3d |
11:29:26 | FromGitter | <zacharycarter> I should build a 3d mode too for it |
11:29:52 | FromGitter | <zacharycarter> @yglukhov if I can plug NimX in easily and it doesn't conflict with how I'm already doing things I'll gladly use it |
11:29:53 | * | claudiuinberlin joined #nim |
11:30:02 | FromGitter | <zacharycarter> if it does I'll report the conflicts and figure out if they can be resolved |
11:31:05 | yglukhov | zacharycarter: well it needs to be near the core of your runtime to do the runloops, etc, just like sdl does. |
11:31:17 | FromGitter | <krux02> https://media.githubusercontent.com/media/krux02/opengl-sandbox/master/examples/screenshots/retro_tiling_0000.png |
11:31:28 | FromGitter | <zacharycarter> @yglukhov question though - when you guys are targeting emscripten you can't use OpenGL right, so does Rod use OpenGLES? |
11:31:58 | * | dddddd quit (Remote host closed the connection) |
11:32:00 | FromGitter | <krux02> the browser has webgl which is opengles (afaik) |
11:32:15 | FromGitter | <zacharycarter> it does, but it's not like you can use the OpenGL bindings for Nim for this |
11:32:31 | FromGitter | <zacharycarter> you have to use something like - https://github.com/nimious/gles - to my knowledge |
11:33:12 | yglukhov | currently it relies on the OpenGLES/WebGL subset, yeah. but i think we could opt for higher opengl spec in runtime for optimizations, in case we need so. yet there was no reason to do that. |
11:34:33 | FromGitter | <zacharycarter> hrm |
11:34:44 | FromGitter | <zacharycarter> @yglukhov so do you use that gles wrapper I linked to? |
11:35:13 | yglukhov | if youre talking about the bindings, we use the opengl from nim-lang for native target, and webgl bindings for js/asmjs. those are collected in nimx.portable_gl module |
11:35:26 | FromGitter | <zacharycarter> thanks |
11:37:12 | FromGitter | <zacharycarter> I may have to rip off / steal this concept |
11:37:32 | FromGitter | <zacharycarter> as that was the one major barrier I was running into getting zengine onto the web |
11:37:37 | FromGitter | <zacharycarter> I hadn't even considered using JS webgl |
11:37:54 | FromGitter | <zacharycarter> I was trying to get those gles bindings to work and it was a headache |
11:41:22 | yglukhov | well you could just use nimx ;)) |
11:41:45 | yglukhov | and contribute to portable_gl in case you need to =) |
11:46:32 | FromGitter | <zacharycarter> True |
11:46:42 | FromGitter | <zacharycarter> Might be easier |
11:47:19 | FromGitter | <zacharycarter> I just have to get my hands dirty with nimx |
11:49:01 | * | itPuffin|osxB quit (Ping timeout: 240 seconds) |
11:49:32 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
11:52:27 | * | ShalokShalom_ joined #nim |
11:55:05 | * | ShalokShalom quit (Ping timeout: 240 seconds) |
11:55:09 | yglukhov | can nim-lang/zip extract gzip? |
11:55:37 | Araq | I doubt it |
11:56:29 | * | Zevv joined #nim |
11:57:01 | Zevv | How does Nim handle local variables in {. async .} functions, am I right to assume these never go on the stack and always end up on the heap? |
11:57:08 | * | claudiuinberlin joined #nim |
11:57:46 | dom96 | yglukhov: untar can. |
11:58:24 | FromGitter | <krux02> @zacharycarter I just implemented the non square font on square tiles approach you posted a gif from |
11:58:35 | dom96 | https://github.com/dom96/untar |
11:58:47 | yglukhov | oooh... interesting |
11:58:48 | dom96 | but it depends on zlib |
11:58:53 | FromGitter | <krux02> It was pretty easy to implement with my opengl sandbox project |
11:59:10 | yglukhov | doesnt nim-lang/zip depend as well? |
11:59:19 | dom96 | probably |
11:59:29 | dom96 | untar is battle tested by choosenim though :) |
11:59:58 | yglukhov | i wonder how easy it would be to stuff it into android... |
12:00:20 | dom96 | I wouldn't be surprised if android ships with zlib |
12:00:36 | FromGitter | <krux02> I would like if steam would make an android release |
12:01:03 | * | fraya joined #nim |
12:01:07 | yglukhov | it has libz. is that it? |
12:01:27 | yglukhov | im really lost in all of those libz, zlib, etc... |
12:01:35 | * | claudiuinberlin quit (Client Quit) |
12:02:08 | FromGitter | <ephja> is there a zlibz? |
12:03:12 | Zevv | Only libzlib |
12:03:28 | dom96 | yglukhov: yep https://github.com/dom96/untar/blob/master/src/untar/gzip.nim#L10 |
12:03:50 | dom96 | Zevv: Regarding your question, I'm not 100% but that does make sense. |
12:04:45 | yglukhov | dom96: why do you have a submodule? |
12:04:55 | dom96 | yglukhov: for Windows |
12:05:23 | yglukhov | does it compile automagically? |
12:05:31 | dom96 | yep |
12:05:41 | Demos[m] | Yes |
12:05:48 | yglukhov | that sounds really sweet. i'll try it. |
12:05:52 | Demos[m] | I use it to bootstrap my package building and deploy scripts |
12:06:03 | yglukhov | thanks |
12:06:09 | Demos[m] | Works pretty well |
12:06:33 | Zevv | totally possible my question is nonsense. What I'm trying to say: in C, automatic variables typically go in the stack; when the function returns, the stack is unwound back the the previous stack frame. But async functions can yield/resume, so the stack is not preserved. I assume Nim does not create a separate stack for each async function, since this is a non portable operation on C, so my guess was that auto variables are allocated on the heap and handled by the GC when t |
12:06:41 | yglukhov | btw, isnt this package include the nim-lang/zip functionality? |
12:06:41 | Demos[m] | though do note gzip is the ANSI C89 of compression |
12:06:44 | Zevv | hope that explains a bit, although I might still complety miss the point |
12:07:10 | Demos[m] | Zip isn’t gzip afaik |
12:07:25 | dom96 | Yeah, gzip is a bit crap |
12:07:26 | Demos[m] | Also does zip do zip64? |
12:07:29 | dom96 | xz would be nice |
12:07:50 | yglukhov | ok. so zip comresses better or smth? |
12:07:59 | Demos[m] | Well with gzip we can much more easily bootstrap getting other libs on all systems |
12:07:59 | Demos[m] | No |
12:08:08 | Demos[m] | Probably worse or about the same |
12:08:17 | dom96 | Zevv: Araq would know the details but what you say makes sense. |
12:08:28 | yglukhov | so whats wrong with "ANSI C89 of compression"? |
12:08:35 | Demos[m] | Nothing |
12:08:44 | yglukhov | ok |
12:09:00 | yglukhov | thanks for teaching me =) |
12:09:08 | Zevv | dom96: ok, thanks |
12:09:54 | Araq | Zevv: in rare cases they can live on the stack but almost always they end up on the heap, yes |
12:09:58 | Demos[m] | Main diff between gzip and zip is likely that zip won’t have the same signature and header layout, since that’s taken care of by each zip entry |
12:10:14 | Demos[m] | Zip is an archive format, gzip is not |
12:10:47 | yglukhov | got it. sounds fine to me. i guess... |
12:12:52 | Zevv | Araq: ok, clear. That explains some performance symptoms I found. No problem, but I'm trying to complete my mental model of the Nim <-> C mapping |
12:14:24 | Demos[m] | For example consider an archive of 10,000 totally identical images containing random noise. Each 1MB. A tar ball of said images would probably be a few MB. A zip would be over 10GB |
12:15:03 | Araq | Demos[m]: yes but the advantage is that you can unzip single files independently |
12:15:23 | Demos[m] | True |
12:17:20 | Demos[m] | It’s a nice median between a tar ball and a filesystem image |
12:18:42 | Demos[m] | We have code here that incrementally uploads huge zips to s3 whole generating them |
12:18:54 | Demos[m] | Data never hits disk |
12:19:55 | Demos[m] | Dealing with 10gb zips is really annoying though since zip64 support is usually not well tested in various products |
12:20:54 | * | TjYoco joined #nim |
12:21:50 | FromGitter | <ephja> is it bindings for liblzma that you want? |
12:22:35 | FromGitter | <mratsim> or tar.xz …. |
12:23:05 | FromGitter | <mratsim> or use p7zip |
12:24:05 | Demos[m] | Libarchive! |
12:25:54 | dom96 | hrm, is yglukhov's thread pool changes in devel now? |
12:26:07 | yglukhov | nope |
12:26:18 | dom96 | aww |
12:26:28 | dom96 | You had a nimble package that replicated it though haven't you? |
12:26:33 | yglukhov | yup |
12:26:51 | yglukhov | yglukhov/threadpools |
12:27:31 | dom96 | is there a PR for this? |
12:27:40 | yglukhov | no, its stuck |
12:27:48 | yglukhov | because of parallel |
12:28:02 | yglukhov | which works though threadpool magic |
12:28:16 | yglukhov | *through |
12:28:41 | yglukhov | and i'm scared to look into it =) |
12:28:56 | dom96 | ahh, but your package is relatively stable right? :) |
12:29:00 | * | Zevv left #nim ("thanks") |
12:29:13 | yglukhov | should be. using it every day. |
12:29:32 | dom96 | awesome, you should merge this in https://github.com/yglukhov/threadpools/pull/1 :) |
12:30:03 | * | vendethiel- joined #nim |
12:30:17 | dom96 | also I'll add it to Nimble's package list if you don't mind |
12:30:35 | Araq | yglukhov: just start a PR, I'll port the parallel magic over |
12:30:40 | yglukhov | dom96: tbh i'm not fond of this idea |
12:30:50 | dom96 | yglukhov: why? |
12:30:58 | Araq | though 'parallel' is .experimental and really scary for me too |
12:31:12 | FromGitter | <zacharycarter> @krux02 do you have screenshots? |
12:31:45 | dom96 | also, which one, merging the PR or submitting it to the package list? |
12:32:18 | yglukhov | dont want users to diverge. nim's existing threadpool is good enough in most cases, imo. my threadpools just fix a couple of specific issues. not much difference to the end user. |
12:32:39 | yglukhov | not fond of nimble registry |
12:32:41 | dom96 | I see. |
12:32:56 | FromGitter | <krux02> @zacharycarter of course |
12:32:57 | dom96 | Alright. I'll just depend on the URL |
12:33:06 | dom96 | For my use case I need the non-blocking behaviour |
12:33:17 | yglukhov | dom96: ah, i see |
12:33:36 | yglukhov | Araq: ok, i'll try to start the WIP pr today |
12:33:40 | FromGitter | <zacharycarter> can the changes @yglukhov have made to threadpool be merged into the existing implementation? |
12:33:51 | dom96 | zacharycarter: yes, this is planned |
12:33:55 | FromGitter | <zacharycarter> awesome :D |
12:34:10 | FromGitter | <zacharycarter> I'll be estatic if I can use parallel in my ship gen stuff |
12:34:30 | yglukhov | zacharycarter: no promises regarding parallel from me =) |
12:34:36 | yglukhov | just the threadpools |
12:34:39 | FromGitter | <krux02> https://media.githubusercontent.com/media/krux02/opengl-sandbox/master/examples/screenshots/retro_tiling_0001.png |
12:34:39 | FromGitter | <zacharycarter> gotcha |
12:34:55 | FromGitter | <zacharycarter> @krux02 interesting |
12:35:01 | FromGitter | <zacharycarter> I'd be curious to see it use an actual map |
12:35:02 | Araq | yglukhov: on the contrary, your threadpools are non-blocking and people want a 'spawn' that can guarantee that |
12:35:03 | dom96 | yglukhov: what's the difference between complex and simple? |
12:35:44 | yglukhov | dom96: complex was an attempt to implement job stealing concept |
12:35:55 | FromGitter | <krux02> @zacharycarter well give me a map |
12:36:01 | FromGitter | <krux02> my map format is bmp |
12:36:09 | FromGitter | <krux02> rgb values are for tint |
12:36:14 | FromGitter | <krux02> alpha is for character |
12:36:17 | yglukhov | which turned out to be less efficient then simple, and more cumbersome. |
12:36:25 | dom96 | ahh, okay. So simple it is. |
12:36:52 | FromGitter | <zacharycarter> @krux02 well you'd need to use something like my map gen library to generate a map and then blit characters for each type of cell in the map |
12:37:42 | FromGitter | <krux02> well yes, but not now |
12:37:47 | Araq | aww no work stealing |
12:37:51 | dom96 | ooh, and there is an explicit ThreadPool object |
12:37:52 | dom96 | I like that |
12:38:18 | FromGitter | <krux02> this game gave me the idea to render everything in a single draw call |
12:38:19 | FromGitter | <krux02> http://gamevuze.com/wp-content/uploads/2014/03/GuessWho.jpg |
12:38:27 | dom96 | btw, while we're at it is there any reason we can't get rid of FlowVar and use Future instead? |
12:38:55 | * | madmalik joined #nim |
12:40:44 | FromGitter | <zacharycarter> Nim would be an interesting topic for : https://perfmattersconf.com/speak/ |
12:41:07 | FromGitter | <ephja> there are no official libarchive binaries for windows? oh well |
12:41:46 | euantor | Getting rid of FLowVar and using Future would be an excellent change IMO |
12:41:52 | FromGitter | <zacharycarter> i agree |
12:42:40 | FromGitter | <krux02> @zacharycarter interesting name for a web stuff conference |
12:42:48 | FromGitter | <zacharycarter> yeah |
12:44:30 | FromGitter | <zacharycarter> @yglukhov portable gl looks interesting, but it seems more like a high level wrapper than just exposing the native GL stuff |
12:44:46 | FromGitter | <zacharycarter> for instance : https://github.com/yglukhov/nimx/blob/master/nimx/portable_gl.nim#L445 |
12:44:55 | FromGitter | <zacharycarter> I'd rather not have to call some special function to do this |
12:45:53 | FromGitter | <zacharycarter> as it stands I'd have to make a LOT of changes to zengine I think to make it work with portable gl |
12:46:14 | FromGitter | <ephja> should I add anything to the opengl package? |
12:46:25 | FromGitter | <zacharycarter> no I don't think so the opengl package is fine as it stands |
12:47:17 | FromGitter | <krux02> @yglukhov I just saw your post that you realeased a game written in Nim |
12:47:24 | FromGitter | <krux02> congratulations on that |
12:48:06 | FromGitter | <krux02> is the game written entirely with javascript backend? |
12:48:25 | FromGitter | <Yardanico> @krux02 no, it uses emscripten |
12:48:25 | FromGitter | <ephja> I thought support for various platforms would be appropriate |
12:48:34 | * | adeohluwa joined #nim |
12:48:51 | FromGitter | <Yardanico> there's also an android/ios release planned (I saw it on their website) |
12:50:03 | FromGitter | <krux02> so emscripten really seems to be a viable target |
12:51:01 | Araq | dom96: FlowVars know about threads and thread local heaps etc, Futures don't |
12:51:09 | FromGitter | <ephja> anyway, I'm not sure how to add support for extension querying while keeping the error checking features without increasing the compilation time by several seconds; at least without using a certain requested language feature :p |
12:51:16 | Araq | maybe compare their fields instead of their names |
12:51:43 | dom96 | Araq: So can't we extend Future with these fields? |
12:52:02 | dom96 | The interface is the same so it makes sense to have a common base, you can inherit from the Future |
12:52:46 | FromGitter | <Yardanico> @ephja helper program ? :) |
12:52:59 | * | claudiuinberlin joined #nim |
12:53:06 | FromGitter | <krux02> @yglukhov: can you fix the link to the "editor live demo" on your github page of rod? |
12:53:07 | * | vendethiel- quit (Ping timeout: 260 seconds) |
12:54:33 | Araq | dom96: might work but a FlowVar can only be written once |
12:54:46 | Araq | and a Future allows multiple completions iirc |
12:54:52 | dom96 | nope |
12:55:12 | Araq | no? ok |
12:55:15 | dom96 | A future can only be completed once |
12:55:22 | dom96 | and if you try to complete it more times you'll get an exception |
12:55:55 | FromGitter | <ephja> @Yardanico I dunno, maybe it's completely unnecessary assuming that glDebugMessageCallback is available |
12:55:57 | Araq | ok that's good. how can we ever "pool" Futures then though? oh well |
12:56:52 | Araq | can we have ^ for Future then? |
12:57:12 | FromGitter | <ephja> hopefully the metaprogramming is justified :p |
12:57:18 | dom96 | I'd rather not |
12:57:25 | dom96 | You can keep it for your FlowVar type |
12:59:19 | yglukhov | krux02: ah, there's a slight technical problem with that. currently rod cannot be installed with official nimble, so the builds do not pass |
13:00:11 | gokr | I can report that building Nim on Raspbian Jessie worked just fine, although choosenim didn't support the platform. |
13:00:19 | gokr | That's nice. |
13:00:59 | yglukhov | krux02: regarding JS, we've been using js backend for quite some time initially, but it turned out to be much slower. |
13:01:11 | * | ShalokShalom_ is now known as ShalokShalom |
13:02:12 | dom96 | hrm, on second thought I can probably use async instead of threads for this... |
13:02:29 | Araq | muhaha my codegen refactoring works |
13:02:38 | Araq | and now I can make it produce much better code |
13:02:55 | FromGitter | <zacharycarter> what codegen Araq? |
13:03:06 | Araq | C(++) |
13:03:11 | FromGitter | <zacharycarter> oooo |
13:03:35 | FromGitter | <ephja> nice |
13:03:48 | FromGitter | <zacharycarter> btw @dom96 I think the companies using Nim page is a good idea |
13:03:52 | FromGitter | <zacharycarter> carfax can go on there Oct 20th |
13:04:06 | FromGitter | <zacharycarter> our lambda job will be in prod by then |
13:04:11 | dom96 | awesome |
13:04:23 | dom96 | I think a wiki page for now would be good |
13:04:29 | FromGitter | <zacharycarter> elm has this on main page |
13:04:34 | FromGitter | <zacharycarter> http://elm-lang.org/ |
13:05:29 | * | fastrom joined #nim |
13:07:18 | subsetpark | makespace has been using nim in production since January |
13:08:32 | FromGitter | <zacharycarter> I want a job as a full time Nim dev |
13:08:39 | FromGitter | <zacharycarter> :P |
13:09:18 | dom96 | https://github.com/nim-lang/Nim/wiki/Companies-using-Nim |
13:09:39 | FromGitter | <zacharycarter> nice |
13:09:58 | subsetpark | zacharycarter where do you live? |
13:10:13 | FromGitter | <zacharycarter> Sterling, VA |
13:10:28 | subsetpark | Not too far to commute to NYC... |
13:10:33 | FromGitter | <zacharycarter> hehehe |
13:10:58 | FromGitter | <zacharycarter> I need to sell my house then I won't be location bound |
13:14:15 | FromGitter | <krux02> is the a fsnotify wrapper for nim? |
13:14:57 | FromGitter | <krux02> I mean file system watching |
13:15:06 | * | fraya quit (Quit: Leaving) |
13:19:01 | FromGitter | <Yardanico> yeah, for linux |
13:19:04 | FromGitter | <Yardanico> and for windows |
13:19:08 | FromGitter | <Yardanico> but they're separated |
13:19:51 | * | fastrom1 joined #nim |
13:20:24 | * | fastrom quit (Ping timeout: 246 seconds) |
13:23:30 | FromGitter | <Yardanico> hmm, http://elm-lang.org/blog/compilers-as-assistants |
13:24:10 | * | rabbi joined #nim |
13:27:09 | subsetpark | BTW zacharycarter - the first actually usable version of my nimtypes library: https://pypi.python.org/pypi?:action=display&name=nim-types&version=0.1 |
13:29:28 | FromGitter | <mratsim> @zacharycarter create your own company :p |
13:31:51 | * | fastrom joined #nim |
13:31:57 | * | fastrom1 quit (Read error: Connection reset by peer) |
13:32:05 | FromGitter | <mratsim> @Yardanico what the hell is "code texture"? Besides Elm is quite interesting, I like they're "if" multiple condition matching too |
13:32:12 | FromGitter | <mratsim> Their* |
13:33:29 | * | fastrom1 joined #nim |
13:34:06 | FromGitter | <ephja> A language for the web only? lame :p |
13:34:18 | subsetpark | The "type diff" concept is really great - I would love it if Nim replaced matching types in argument mismatches with ... |
13:34:33 | FromGitter | <Yardanico> @mratsim I only linked this page because of compiler hints :) |
13:34:37 | FromGitter | <Yardanico> I don't use Elm |
13:35:28 | FromGitter | <Yardanico> also interesting thing - https://github.com/elm-lang/error-message-catalog |
13:35:37 | FromGitter | <Yardanico> A set of Elm programs to trigger every possible error message. |
13:36:01 | * | fastrom quit (Ping timeout: 248 seconds) |
13:36:44 | PMunch | Yeah, Elm is really the current gold standard for compiler errors |
13:36:44 | FromGitter | <mratsim> @ephja I'm pretty sure there are some jokes about replacing Windows/Mac by Firefox/Chrome/IE with a Google search wallpaper being the next best thing since sliced bread |
13:37:24 | FromGitter | <mratsim> Oh? Even compared with Rust/Haskell? |
13:37:47 | * | fastrom1 quit (Ping timeout: 255 seconds) |
13:38:08 | FromGitter | <Yardanico> rust? lol |
13:38:57 | FromGitter | <Yardanico> well rust has many of them too |
13:38:58 | FromGitter | <Yardanico> https://doc.rust-lang.org/error-index.html |
13:39:01 | FromGitter | <Yardanico> but they're more cryptic :) |
13:39:08 | * | relax joined #nim |
13:39:53 | dom96 | An error catalog for Nim is on my todo list |
13:39:57 | dom96 | Anyone wanna take that up? |
13:40:41 | * | fastrom joined #nim |
13:42:07 | federico3 | error catalog? |
13:42:19 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
13:42:25 | * | fastrom quit (Read error: Connection reset by peer) |
13:42:27 | * | fastrom1 joined #nim |
13:42:48 | federico3 | like the rust index or something else? |
13:43:08 | FromGitter | <Yardanico> maybe an error catalog with bigger error descriptions? |
13:45:35 | FromGitter | <krux02> yay hot reloading of assets is cool |
13:46:17 | * | fastrom joined #nim |
13:46:35 | * | fastrom1 quit (Ping timeout: 240 seconds) |
13:50:46 | Arrrr | Rust does a lot of things very well. How cool is to be popualr |
13:51:38 | * | dddddd joined #nim |
13:55:10 | FromGitter | <krux02> well while rust does a lot of things very well, Nim does other things much better |
13:57:51 | * | fastrom quit (Ping timeout: 248 seconds) |
13:58:53 | * | nsf quit (Quit: WeeChat 1.9) |
13:59:34 | * | fastrom1 joined #nim |
14:03:09 | * | fastrom joined #nim |
14:03:45 | * | fastrom1 quit (Ping timeout: 248 seconds) |
14:05:59 | FromGitter | <ephja> cmake syntax error -.- well, I'm leaving the libarchive bindings generation to someone else :p |
14:06:14 | dom96 | Like elm's error catalog |
14:06:29 | dom96 | a place to submit errors that could be made clearer (with code samples) |
14:07:53 | * | claudiuinberlin joined #nim |
14:08:18 | * | claudiuinberlin quit (Client Quit) |
14:09:59 | * | PMunch quit (Quit: Leaving) |
14:10:53 | subsetpark | dom96: sounds like a fun project |
14:11:10 | * | ipjk joined #nim |
14:11:49 | FromGitter | <krux02> https://media.githubusercontent.com/media/krux02/opengl-sandbox/master/examples/screenshots/retro_tiling_0003.png |
14:12:45 | FromGitter | <ephja> make a real time co op game :p |
14:12:51 | FromGitter | <krux02> since it became super easy for me to upload screenshots, I am spamming screenshots when I have something interesting |
14:14:35 | FromGitter | <Yardanico> what do you use for screenshots? |
14:14:56 | FromGitter | <ephja> so cmake treats \x in a path as an escape sequence. lovely |
14:15:01 | FromGitter | <ephja> gotta use forward slashes |
14:16:17 | FromGitter | <krux02> https://media.githubusercontent.com/media/krux02/opengl-sandbox/master/examples/screenshots/octree_0000.png |
14:16:34 | FromGitter | <krux02> I just use github |
14:16:42 | FromGitter | <krux02> git use git lfs |
14:16:59 | FromGitter | <krux02> my program just dumps screenshots in a screenshot folder |
14:17:05 | FromGitter | <krux02> from that folder I just do a push |
14:17:19 | FromGitter | <krux02> and then git lfs prefents that the repository becomes huge |
14:17:22 | dom96 | That's gonna grow your repo in size considerably. |
14:17:28 | FromGitter | <krux02> at least the history |
14:17:36 | dom96 | oh, does lfs handle this? |
14:17:41 | FromGitter | <krux02> yes |
14:17:46 | FromGitter | <krux02> and it doesn't destroy the workflow |
14:18:01 | FromGitter | <krux02> int he git history there is just a link to the version |
14:18:12 | FromGitter | <krux02> so the history will never be huge |
14:18:35 | FromGitter | <ephja> vscode's code navigation features are not very good indeed |
14:18:36 | * | rabbi quit (Remote host closed the connection) |
14:18:36 | FromGitter | <krux02> and when you don't have the lfs plugin the screenshots folder will stay basically empty |
14:18:47 | FromGitter | <krux02> you will just have files that have links in them, that'? it |
14:19:25 | * | endragor quit (Remote host closed the connection) |
14:19:25 | FromGitter | <krux02> @ephija I like in emacs a code navigation feature that is based on git grep |
14:20:00 | FromGitter | <krux02> it searches the symbol under the cursor via git grep and all occurences I get a list to jump to and the performance is instant |
14:20:32 | * | claudiuinberlin joined #nim |
14:20:37 | * | fastrom quit (Ping timeout: 255 seconds) |
14:20:51 | FromGitter | <krux02> any comments on my octree :P |
14:21:20 | FromGitter | <krux02> it updates in realtime |
14:21:49 | * | endragor joined #nim |
14:22:26 | FromGitter | <ephja> that works for some things. anyway, the problem is that vscode can only display the symbol browser in the drop down thing AFAICT |
14:22:49 | Arrrr | Cool, is it able to balance itself? the octree |
14:23:09 | FromGitter | <ephja> are any of the IDEs with nimsuggest support better in this regard? |
14:26:27 | * | endragor quit (Ping timeout: 260 seconds) |
14:26:31 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
14:28:39 | FromGitter | <krux02> @Arrrr: well an octree can't do rotations for rebalancing the octree is defined by the positions of the nodes it contains |
14:28:43 | * | rauss joined #nim |
14:31:09 | Arrrr | I mean, if you free enough points, will these nodes join again in parent or just stay there. |
14:31:35 | FromGitter | <krux02> @ephja as you might have guessed, I use emacs, but nimsuggest code navigation is also here not really good |
14:31:52 | FromGitter | <krux02> for me it doesn't work reliable enough to be used |
14:32:06 | FromGitter | <krux02> I just use identifier grepping |
14:32:16 | FromGitter | <krux02> worgs well enough |
14:34:19 | * | endragor joined #nim |
14:35:08 | * | vlad1777d quit (Remote host closed the connection) |
14:37:41 | * | endragor quit (Remote host closed the connection) |
14:44:22 | * | endragor joined #nim |
14:48:27 | * | claudiuinberlin joined #nim |
14:51:32 | FromGitter | <edubart> how do I generate doc of a nim file that includes other files? my doc is being empty, Im using "nim doc" |
14:51:40 | euantor | Anybody seen any of the stuff with Swift 4? They've made some interesting changes, such as changes to Strings and a new Codeable protocol for Json/Plist encoding/decoding |
14:51:42 | euantor | JSON: https://medium.com/swiftly-swift/swift-4-decodable-beyond-the-basics-990cc48b7375 |
14:51:47 | FromGitter | <edubart> and what is the difference between "nim doc" and "nim doc2" |
14:51:55 | euantor | Release details: https://swift.org/blog/swift-4-0-released/ |
14:52:11 | adeohluwa | https://usercontent.irccloud-cdn.com/file/tLjD9LZF/IMG_20170921_165114.jpg |
14:52:20 | adeohluwa | I get SSL shutdown once in a file |
14:52:45 | adeohluwa | *once in a while |
14:53:08 | euantor | The new Substring type is interesting. Doing `x[0..2]` gives a Substring type which doesn't copy the string, but references the original and provides a view of the sub string. You can use most String methods on a Substring type |
14:53:45 | euantor | Their strings are copy on write, same with arrays etc |
14:53:58 | FromGitter | <Yardanico> @edubart there are plenty |
14:54:13 | FromGitter | <Yardanico> you can try yourself both of them to clearly see it yourself :) |
14:54:24 | FromGitter | <edubart> nim doc2 doesnt work for me, nim doc works only in a single file |
14:55:18 | FromGitter | <Yardanico> why it does't work? |
14:55:38 | FromGitter | <edubart> it gives a lot of generic errors, although the program compiles and runs fine |
15:00:36 | FromGitter | <edubart> is there a tutorial on how to use nim doc? |
15:02:17 | ipjk | edubart: https://nim-lang.org/docs/docgen.html |
15:02:39 | * | d10n-work joined #nim |
15:04:03 | dom96 | adeohluwa: interesting. If you could reproduce it and submit the steps to reproduce as a bug that would be awesome. |
15:04:38 | adeohluwa | I will do that |
15:04:46 | adeohluwa | doubt it will be a bug tho |
15:05:11 | dom96 | it looks like you're calling request (or get/post/etc) on the same httpclient instance from multiple threads? |
15:06:53 | adeohluwa | definitely |
15:06:58 | adeohluwa | that's what I am doping |
15:07:03 | adeohluwa | *doing |
15:10:19 | dom96 | you should create a httpclient instance for each thread |
15:15:25 | * | zahary_ joined #nim |
15:26:29 | adeohluwa | dom96: bless |
15:26:51 | adeohluwa | how does newAsyncHttpClient() work |
15:27:00 | adeohluwa | seems that'll be most suitable |
15:27:55 | dom96 | what's your use case? |
15:28:43 | * | Trustable joined #nim |
15:28:56 | FromGitter | <Yardanico> adeohluwa: no, it wouldn't help you if you use threads |
15:29:06 | FromGitter | <Yardanico> only if you would entirely use async |
15:29:18 | * | nsf joined #nim |
15:29:48 | * | Sentreen quit (Ping timeout: 252 seconds) |
15:30:39 | * | Jesin joined #nim |
15:35:55 | * | yglukhov quit (Remote host closed the connection) |
15:36:53 | adeohluwa | I'm trying to devilishly scrape hundred of thousands of details from a website that doesn't like aggressive scraping |
15:37:25 | adeohluwa | so I thought if I could make concurrent requests over different proxies |
15:37:52 | * | yglukhov joined #nim |
15:38:37 | dom96 | you can use async http client for that, but again you'll need to create separate instances |
15:38:40 | dom96 | bbl |
15:38:56 | FromGitter | <Yardanico> adeohluwa: don't be scared, separate instances are not costly |
15:41:11 | adeohluwa | Yardanico: hmm... |
15:42:46 | * | Sentreen joined #nim |
15:43:28 | * | yglukhov quit (Ping timeout: 240 seconds) |
15:43:35 | * | relax quit (Ping timeout: 240 seconds) |
15:43:42 | FromGitter | <Yardanico> well try it yourself :) but yes, you shouldn't use the same instance for different async coroutines or threads |
15:45:51 | * | Jesin quit (Quit: Leaving) |
15:47:46 | * | Jesin joined #nim |
15:50:40 | * | relax joined #nim |
15:58:45 | FromGitter | <mratsim> I think Scrappy has a GitHub file with active proxy auto update |
16:04:39 | FromGitter | <Yardanico> нфн |
16:04:41 | FromGitter | <Yardanico> yay |
16:04:41 | FromGitter | <Yardanico> https://github.com/nim-lang/Nim/wiki/Companies-using-Nim/_compare/d288a0f%5E...d288a0f |
16:05:17 | FromGitter | <Yardanico> but second one is not a company :) |
16:08:35 | * | arnetheduck quit (Ping timeout: 240 seconds) |
16:09:06 | FromGitter | <Yardanico> ah |
16:09:07 | FromGitter | <Yardanico> This page lists the brave companies, organisations and individuals |
16:09:12 | FromGitter | <Yardanico> individuals |
16:10:07 | * | Arrrr quit (Read error: Connection reset by peer) |
16:15:24 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
16:15:31 | FromGitter | <zacharycarter> @mratsim not a bad idea, but what would I make? |
16:15:37 | FromGitter | <zacharycarter> maybe I can make muscle pron |
16:16:22 | FromGitter | <zacharycarter> team up with skrylar |
16:22:35 | * | Sentreen quit (Ping timeout: 240 seconds) |
16:24:41 | * | Jesin quit (Quit: Leaving) |
16:30:07 | Trustable | Hi, I made a small synthesizer using SDL2 audio callback. I get a segmentation fault when accessing global variables, probably from different threads. I tried to solve it with acquire/release lock or with "{.locks: [...].}", without any effect. Any help? |
16:30:30 | * | fastrom joined #nim |
16:35:36 | * | Sentreen joined #nim |
16:39:21 | gokr | Trustable: Hey, you work on NiGui, right? Going well? |
16:39:41 | * | yglukhov joined #nim |
16:42:10 | Trustable | Hi gokr, yes, I think a lot about NiGui and other Nim things :) |
16:42:44 | gokr | Gotta go drive my daughter, but I want to use NiGui for Spry - libui seems "dead" |
16:43:48 | * | yglukhov quit (Ping timeout: 240 seconds) |
16:46:31 | FromGitter | <zacharycarter> blegh I hate deploying code at work |
16:46:38 | FromGitter | <zacharycarter> takes so long / involves so many people |
16:47:15 | FromGitter | <mratsim> I was release gatekeeper in a past life, I hated when devs just ran afoul of production ;) |
16:48:01 | FromGitter | <zacharycarter> this is an alpha environment :/ |
16:48:30 | FromGitter | <zacharycarter> I'm having to adjust F5 rules to get a stupid app out |
16:48:31 | * | yglukhov joined #nim |
16:48:34 | FromGitter | <zacharycarter> should never be this complicated |
16:53:39 | * | nsf quit (Quit: WeeChat 1.9) |
16:57:16 | * | fastrom1 joined #nim |
16:59:50 | * | fastrom quit (Ping timeout: 255 seconds) |
17:05:31 | * | vlad1777d joined #nim |
17:07:06 | FromGitter | <Yardanico> gokr: libui is not "dead", it's feature complete :P |
17:08:11 | FromGitter | <zacharycarter> http://thecooperreview.com/10-tricks-appear-smart-meetings/ |
17:08:12 | FromGitter | <Yardanico> I want to play with NiGui a bit more too :) So I'll wait for more complex widgets |
17:10:09 | FromGitter | <Yardanico> but yeah, I think NiGui will be better than any other GUI framework because it's written entirely in Nim |
17:10:16 | FromGitter | <zacharycarter> +1 |
17:11:09 | * | rokups quit (Quit: Connection closed for inactivity) |
17:14:28 | * | solitudesf joined #nim |
17:15:50 | FromGitter | <mratsim> What’s the difference between NiGui and @StefanSalewski work? both seem to wrap GTK no? |
17:17:59 | FromGitter | <zacharycarter> I think NiGUI plans to eventually not wrap GTK |
17:18:18 | FromGitter | <Yardanico> @mratsim NiGui wraps GTK and WinApi already |
17:18:21 | Trustable | mratsim: NiGui is intended to be much more than a Gtk wrapper, Gtk is just one possible backend, the user of NiGui does not need to know Gtk. |
17:19:18 | FromGitter | <mratsim> Good to know, thanks |
17:19:20 | Trustable | NiGui has an own layout manager, it uses only very basic functions of Gtk and WinAPI |
17:19:40 | dom96 | Does it support macOS as well? |
17:19:48 | FromGitter | <Yardanico> only with GTK backend now |
17:20:01 | FromGitter | <Yardanico> but it's planned to add native macOS support |
17:21:01 | Trustable | I'm still looking for someone to do the macOS part, if you know anyone, just contact me :) |
17:24:26 | * | Sentreen quit (Ping timeout: 246 seconds) |
17:26:08 | FromGitter | <mratsim> I do have a mac so I can test, if needed |
17:30:20 | dom96 | I have a Mac too and I might help, but not in the near future, too many projects of my own to work on :) |
17:30:48 | * | olwi joined #nim |
17:35:28 | Trustable | dom96: I understand, big kudos for all your work in the Nim universe :) |
17:36:13 | dom96 | thanks :) |
17:37:57 | * | Sentreen joined #nim |
17:40:28 | * | vlad1777d quit (Remote host closed the connection) |
17:40:47 | FromGitter | <edubart> I'm trying to create a new package, nimble publish fails for me with `Error: unhandled exception: Connection was closed before full request has been made [ProtocolError]` |
17:41:47 | FromGitter | <edubart> However it made a fork of nim-lang/packages, I manually did the PR there now, does it get automatically accepted? |
17:42:16 | FromGitter | <edubart> Or is there a trigger to make it accepted? |
17:45:03 | * | Sentreen quit (Ping timeout: 248 seconds) |
17:45:10 | olwi | Hi, can somebody explain me why the following 1-line proc does not compile: |
17:45:11 | olwi | proc blah(var s: string): string = s |
17:45:11 | olwi | with rather cryptic error message: |
17:45:11 | olwi | test1.nim(1, 11) Error: ')' expected |
17:45:31 | Trustable | edubar: The PR has to be merged manually. Just wait a little bit. |
17:46:04 | Trustable | olwi: put the "var" in front of the type |
17:46:13 | Trustable | proc blah(s: var string): string = s |
17:47:28 | * | joe__ joined #nim |
17:47:42 | olwi | Trustable: Thanks! Stupid error from my side |
17:49:12 | * | joe__ quit (Client Quit) |
17:49:21 | dom96 | edubart: it needs to be manually reviewed, have patience. |
17:56:10 | * | Trustable quit (Quit: Leaving) |
17:56:27 | * | jjido joined #nim |
17:59:25 | * | Sentreen joined #nim |
18:00:04 | * | jjido quit (Remote host closed the connection) |
18:00:31 | * | olwi left #nim ("Leaving") |
18:02:22 | * | TjYoco quit (Quit: Leaving) |
18:03:21 | * | adeohluwa quit (Quit: Connection closed for inactivity) |
18:06:49 | * | solitudesf quit (Remote host closed the connection) |
18:12:33 | * | askatasuna joined #nim |
18:20:25 | * | salewski joined #nim |
18:22:35 | * | vlad1777d joined #nim |
18:23:22 | salewski | I have this test program with the connect() macro: https://github.com/StefanSalewski/gintro/blob/master/examples/button.nim |
18:23:53 | salewski | When I try to pass the proc parameter as typed, then I have to change it to |
18:24:13 | salewski | connect(app, "activate", buttom.activate) |
18:24:49 | salewski | Otherwise a different activate proc is tried to use, and compile fails. |
18:25:01 | salewski | Is that the expected behaviour? |
18:27:14 | salewski | I really want to pass procs typed, so that I can investigate the parameters of the procs. |
18:27:41 | FromGitter | <jilee210> Why compilation error when using try: let as below' |
18:27:57 | FromGitter | <jilee210> try: ⏎ let file1 = open(paramStr(1)) ⏎ let file2 = open(paramStr(2)) ⏎ except IOError: ⏎ echo "file not found" ... [https://gitter.im/nim-lang/Nim?at=59c404adbc464729745f98fa] |
18:31:33 | dom96 | jilee210: scope works differently than in Python, you need to define the variable outside the 'try' |
18:33:11 | FromGitter | <jilee210> Are then can I simulate this python code: |
18:33:16 | FromGitter | <jilee210> try: ⏎ file1 = open(sys.argv[1]) ⏎ file2 = open(sys.argv[2]) ⏎ except IOError, e: ⏎ print "file not found: %s" % e ... [https://gitter.im/nim-lang/Nim?at=59c405eccfeed2eb65376a7f] |
18:33:23 | FromGitter | <Yardanico> Yes |
18:33:26 | FromGitter | <Yardanico> You can |
18:33:30 | * | mwbrown quit (Ping timeout: 252 seconds) |
18:33:34 | * | Atomic_AsHuP joined #nim |
18:33:39 | FromGitter | <jilee210> how? |
18:33:51 | * | mwbrown joined #nim |
18:33:54 | dom96 | Just write `var file1: File` above the 'try' |
18:33:58 | * | SimpleIRC_eBW2Q joined #nim |
18:34:11 | FromGitter | <Yardanico> var file1, file2: File |
18:34:17 | FromGitter | <jilee210> thanks |
18:34:53 | * | Atomic_AsHuP quit (Remote host closed the connection) |
18:36:20 | * | salewski quit (Quit: WeeChat 1.9) |
18:37:43 | FromGitter | <jilee210> how about try block? |
18:39:48 | * | Jesin joined #nim |
18:45:08 | * | SimpleIRC_eBW2Q quit (Ping timeout: 240 seconds) |
18:45:51 | FromGitter | <jilee210> if file cannot be opened, I want to see error |
18:47:41 | * | Pisuke quit (Ping timeout: 240 seconds) |
18:48:01 | * | Sembei joined #nim |
18:51:25 | * | madmalik quit (Quit: Connection closed for inactivity) |
18:52:24 | * | salewski joined #nim |
18:52:33 | FromGitter | <Varriount> @jilee210 There are a couple different variations in the `open` procedure (too many, in my opinion). Some of them throw exceptions when the file cannot be opened. |
18:53:29 | FromGitter | <Varriount> Try this: https://nim-lang.org/docs/system.html#open,string,FileMode,int |
18:53:59 | salewski | Unfortunately I am not able to provide a minimal example for the names conflict. |
18:54:46 | salewski | Maybe the problem is again the parseStmt() -- I should use the AST API as Araq told me. |
18:54:52 | salewski | Bye. |
18:57:18 | * | salewski quit (Quit: WeeChat 1.9) |
19:00:41 | FromGitter | <jilee210> Ok, I guess I should not try block when opening a file unlike python. |
19:01:08 | Araq | var f = open(filename) # throws |
19:01:17 | Araq | if open(f, filename): # doesn't throw |
19:02:04 | * | claudiuinberlin joined #nim |
19:07:04 | Araq | Varriount: *sigh*, so which variant of 'open' is too many? |
19:09:32 | * | yglukhov quit (Remote host closed the connection) |
19:10:26 | Araq | https://docs.python.org/2/genindex-O.html |
19:10:45 | Araq | open() (built-in function) |
19:10:45 | Araq | (FrameWork.DialogWindow method) |
19:10:45 | Araq | (FrameWork.Window method) |
19:10:47 | Araq | (distutils.text_file.TextFile method) |
19:10:49 | Araq | (imaplib.IMAP4 method) |
19:10:51 | Araq | (in module aifc) |
19:10:54 | Araq | (in module anydbm) |
19:10:55 | Araq | (in module cd) |
19:10:57 | Araq | (in module codecs) |
19:10:59 | Araq | (in module dbhash) |
19:11:01 | Araq | (in module dbm) |
19:11:03 | Araq | (in module dl) |
19:11:05 | Araq | (in module dumbdbm) |
19:11:07 | Araq | (in module gdbm) |
19:11:09 | FromGitter | <Bennyelg> @Varriount Can you provide me some code you wrote (aws) > |
19:11:09 | Araq | (in module gzip) |
19:11:11 | Araq | (in module io) |
19:11:13 | Araq | (in module os) |
19:11:15 | Araq | (in module ossaudiodev) |
19:11:17 | Araq | (in module posixfile) |
19:11:19 | Araq | (in module shelve) |
19:11:21 | Araq | (in module sunau) |
19:11:23 | Araq | (in module sunaudiodev) |
19:11:25 | Araq | (in module tarfile) |
19:11:27 | Araq | (in module wave) |
19:11:29 | Araq | (in module webbrowser) |
19:11:31 | Araq | (pipes.Template method) |
19:11:33 | Araq | (tarfile.TarFile class method) |
19:11:35 | Araq | (telnetlib.Telnet method) |
19:11:37 | Araq | (urllib.URLopener method) |
19:11:39 | Araq | (urllib2.OpenerDirector method) |
19:11:41 | Araq | (webbrowser.controller method) |
19:11:53 | Araq | (zipfile.ZipFile method) |
19:12:13 | * | d10n-work quit (Quit: Connection closed for inactivity) |
19:18:56 | FromGitter | <ephja> lol |
19:20:50 | * | Vladar quit (Quit: Leaving) |
19:25:16 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
19:41:48 | * | yglukhov joined #nim |
19:44:11 | * | nsf joined #nim |
19:54:05 | * | claudiuinberlin joined #nim |
19:58:03 | FromGitter | <Yardanico> lol |
19:58:31 | FromGitter | <Yardanico> how did he search this? :P |
19:58:49 | FromGitter | <Yardanico> ah sorry |
19:58:51 | FromGitter | <Yardanico> in this index |
20:00:17 | * | solitudesf joined #nim |
20:03:20 | * | manjaro-kde5- joined #nim |
20:04:23 | FromGitter | <Yardanico> Araq: do you like exceptions yourself? or you would instead like to use Option type or booleans instead of exceptions where possible? |
20:06:32 | * | manjaro-kde5_ quit (Ping timeout: 260 seconds) |
20:09:48 | FromGitter | <mratsim> Mmmmh, what am I doing wrong? ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59c41c8ccfeed2eb6537d8b2] |
20:14:10 | FromGitter | <zacharycarter> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59c41d92c101bc4e3af444b4] |
20:14:11 | FromGitter | <zacharycarter> compiles for me |
20:14:21 | FromGitter | <zacharycarter> of course it doesn't echo what I'd expect |
20:14:23 | FromGitter | <zacharycarter> but it still compiles |
20:15:31 | FromGitter | <Yardanico> try c2nim it ? :) |
20:15:44 | FromGitter | <Yardanico> c2nim knows a lot about nim ffi |
20:16:08 | FromGitter | <mratsim> oh, there is a TFoo after |
20:16:19 | FromGitter | <zacharycarter> not sure if that makes any difference or not |
20:17:44 | FromGitter | <zacharycarter> this compiles too |
20:17:48 | FromGitter | <zacharycarter> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59c41e6c614889d4752649d9] |
20:17:58 | FromGitter | <zacharycarter> main thing I think is the repr call |
20:17:58 | FromGitter | <mratsim> doesn’t compile for me on mac with clang |
20:18:10 | FromGitter | <zacharycarter> ah I'm compiling in C++ mode |
20:18:12 | FromGitter | <zacharycarter> that might be why |
20:18:44 | FromGitter | <zacharycarter> The importc pragma provides a means to import a proc or a variable from C. The optional argument is a string containing the C identifier. If the argument is missing, the C name is the Nim identifier exactly as spelled: |
20:18:46 | FromGitter | <zacharycarter> so not a type |
20:18:54 | FromGitter | <zacharycarter> ideally you'd use it like this |
20:20:37 | * | MyMind joined #nim |
20:20:45 | Araq | yardanico: very rarely |
20:20:46 | * | Sembei quit (Ping timeout: 264 seconds) |
20:21:14 | FromGitter | <mratsim> It’s fine if it works with C++ though the repr a outputting empty [] bracket is a bit sad, at least I can use the named field |
20:21:30 | FromGitter | <Yardanico> well usually you don't want to importc types from C or C++ |
20:21:40 | FromGitter | <Yardanico> you want to create binary-compatible types |
20:22:01 | FromGitter | <Yardanico> so you can pass your object to C function which accepts struct Foo |
20:22:40 | FromGitter | <zacharycarter> yeah exactly |
20:22:42 | FromGitter | <zacharycarter> something like |
20:22:51 | FromGitter | <zacharycarter> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59c41f9a7b7d98d30d21de96] |
20:22:53 | FromGitter | <zacharycarter> although this doesn't compile either |
20:23:45 | FromGitter | <mratsim> aaah the bycopy pragma? |
20:24:08 | FromGitter | <zacharycarter> bycopy means the value will be passed as a value not as a ref |
20:24:17 | FromGitter | <zacharycarter> or pointer |
20:24:19 | FromGitter | <zacharycarter> whatever |
20:24:39 | FromGitter | <zacharycarter> main point is I'm using importc on the proc not the type |
20:26:17 | FromGitter | <mratsim> My use case is, I will have a struct that will store some metadata (3 fixed size array, 3 int and 1 pointer) and then I will memcpy it to a GPU. The pointer should be copied as is. Struct will be used by a C++ GPU function |
20:26:54 | FromGitter | <mratsim> but I wasn’t sure how to have it binary compatible (besides exportc to avoid name mangling) |
20:27:26 | FromGitter | <Yardanico> c2nim it ? :) |
20:27:28 | Araq | "binary compatible" and "name mangling" -- see the problem? |
20:28:44 | FromGitter | <zacharycarter> try this |
20:28:56 | FromGitter | <zacharycarter> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59c42108cfeed2eb6537f251] |
20:29:07 | FromGitter | <zacharycarter> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59c42113b59d55b823237c16] |
20:30:30 | FromGitter | <mratsim> Ah I see, thanks |
20:30:34 | FromGitter | <zacharycarter> |
20:34:52 | * | claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com) |
20:37:26 | FromGitter | <Yardanico> It seems we're getting to the point of creating something for deep learning! https://github.com/edubart/arraymancer-vision |
20:37:30 | FromGitter | <Yardanico> , |
20:38:43 | FromGitter | <Yardanico> , |
20:38:43 | FromGitter | <zacharycarter> O.o |
20:39:34 | FromGitter | <mratsim> though @zacharycarter somehow you can’t put both in the same file with “emit" |
20:39:39 | * | yglukhov quit (Remote host closed the connection) |
20:40:23 | FromGitter | <mratsim> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59c423b6177fb9fe7eeba374] |
20:41:42 | * | Ven`` joined #nim |
20:41:56 | FromGitter | <mratsim> oh well, I’ll have a .c or .cpp file in my repo, shame on me *shrug* |
20:58:36 | * | yglukhov joined #nim |
20:58:52 | * | vlad1777d quit (Ping timeout: 255 seconds) |
20:59:23 | * | vlad1777d joined #nim |
21:06:08 | * | Ven`` quit (Ping timeout: 248 seconds) |
21:06:37 | * | relax quit (Ping timeout: 260 seconds) |
21:18:02 | * | dddddd quit (Quit: Hasta otra..) |
21:32:41 | * | solitudesf quit (Ping timeout: 240 seconds) |
21:36:01 | * | vlad1777d quit (Ping timeout: 248 seconds) |
21:37:10 | * | vlad1777d joined #nim |
21:43:25 | * | Serenitor joined #nim |
21:45:42 | Serenitor | I have an array of float and a proc that takes an array of cfloat. |
21:45:42 | Serenitor | while keeping those types, do I have any better options than to go over that array and cast every item? |
21:46:00 | * | m712 quit (Ping timeout: 252 seconds) |
21:47:39 | * | derlafff quit (Ping timeout: 252 seconds) |
21:47:39 | * | huonw quit (Ping timeout: 252 seconds) |
21:47:39 | * | demi- quit (Ping timeout: 252 seconds) |
21:47:49 | * | demi- joined #nim |
21:48:12 | * | gangstacat quit (Ping timeout: 252 seconds) |
21:48:12 | * | odc quit (Ping timeout: 252 seconds) |
21:48:35 | * | derlafff joined #nim |
21:49:12 | * | mahsav quit (Ping timeout: 260 seconds) |
21:50:57 | * | mahsav joined #nim |
21:52:08 | FromGitter | <Yardanico> Cast entire array ? :P |
21:52:32 | FromGitter | <zacharycarter> @mratsim I'm not sure how to make it work with emit - I'd probably ask Araq |
21:52:34 | * | m712 joined #nim |
21:53:00 | FromGitter | <zacharycarter> I have a feeling though this quote had something to do with it |
21:53:09 | * | huonw joined #nim |
21:53:09 | FromGitter | <zacharycarter> From IRC (bridge bot) @FromIRC 16:27 ⏎ <Araq> "binary compatible" and "name mangling" -- see the problem? |
21:53:16 | FromGitter | <zacharycarter> cool! |
21:54:14 | * | relax joined #nim |
21:54:21 | FromGitter | <genotrance> Is there an async module to read/write files/streams? |
21:54:34 | Serenitor | yup Yardanico I didn't realize I could that, thx |
21:55:12 | FromGitter | <zacharycarter> @genotrance https://nim-lang.org/docs/asyncdispatch.html + https://nim-lang.org/docs/asyncnet.html |
21:55:28 | FromGitter | <zacharycarter> err wait |
21:55:38 | FromGitter | <zacharycarter> I meant https://nim-lang.org/docs/asyncfile.html |
21:56:14 | FromGitter | <zacharycarter> @yglukhov you around by any chance? |
21:56:18 | FromGitter | <genotrance> @zacharycarter: isn't that just for sockets? |
21:56:27 | FromGitter | <zacharycarter> @genotrance asyncfile is not |
21:56:33 | FromGitter | <zacharycarter> "This module implements asynchronous file reading and writing. ⏎ ⏎ " |
21:56:33 | yglukhov | hey whats up |
21:56:46 | FromGitter | <zacharycarter> I'm going to start trying to incorporate nimx into zengine |
21:57:02 | yglukhov | cool, best of luck, man! =) |
21:57:16 | FromGitter | <zacharycarter> thank you - I may put an issue up on nimx to ask questions if that's okay with you |
21:57:52 | * | Ven`` joined #nim |
21:57:53 | * | vlad1777d quit (Ping timeout: 248 seconds) |
21:57:53 | yglukhov | absolutely. going offline now anyway. |
21:58:04 | FromGitter | <zacharycarter> alright cool - have a good one! talk soon! |
21:58:17 | yglukhov | c u |
21:59:12 | FromGitter | <genotrance> @zacharycarter: asyncfile is just what I need! |
21:59:39 | FromGitter | <zacharycarter> @genotrance :) |
21:59:54 | FromGitter | <genotrance> @cheatfate's asynctools worked perfectly for an async execProcess() |
22:00:24 | FromGitter | <zacharycarter> where has cheatfate been anyway? |
22:00:31 | FromGitter | <zacharycarter> I miss seeing his creepy avatar |
22:00:47 | FromGitter | <genotrance> I'm seeing a crash on my program after running for a long time which I cannot reproduce when run through GDB |
22:01:12 | FromGitter | <zacharycarter> can you share a stacktrace? |
22:01:14 | * | gangstacat joined #nim |
22:01:53 | * | mahmudov joined #nim |
22:02:15 | FromGitter | <genotrance> it's on Windows so I just see a popup saying my program ran abnormally, i don't get any stacktrace even with full debugging enabled |
22:02:57 | FromGitter | <zacharycarter> isn't there like a details or log in system events or something? I haven't used windows in forever so I has no idea |
22:03:52 | * | zachk joined #nim |
22:05:31 | FromGitter | <genotrance> i'll have to check on that |
22:05:39 | FromGitter | <zacharycarter> I think if you go to start > eventvwr |
22:05:50 | FromGitter | <zacharycarter> type eventvwr into the run dialog in the start menu |
22:05:52 | FromGitter | <zacharycarter> something should be in there |
22:07:19 | * | thomasross quit (Remote host closed the connection) |
22:07:33 | FromGitter | <Varriount> bennyelg: You there? |
22:07:58 | zachk | zacharycarter: did you go to northeastern? |
22:08:10 | * | thomasross joined #nim |
22:08:22 | FromGitter | <Varriount> Araq: Python only has one open() that actually exists in the global namespace though. |
22:09:31 | FromGitter | <zacharycarter> zack: no VCU |
22:09:46 | zachk | oh ok, different zach carter then |
22:09:47 | FromGitter | <zacharycarter> zachk ^ sorry |
22:10:50 | FromGitter | <zacharycarter> I know there's a Zach Carter that works for mozilla |
22:10:57 | FromGitter | <zacharycarter> but he looks quite different than I do :P |
22:11:12 | FromGitter | <zacharycarter> mainly because he's black and I'm white |
22:11:26 | FromGitter | <zacharycarter> but he's way more accomplished than I am hehe |
22:11:33 | zachk | :D |
22:13:38 | * | vlad1777d joined #nim |
22:23:36 | FromGitter | <zacharycarter> NimX is nice but complicated and not documented :/ |
22:28:30 | * | yglukhov quit (Remote host closed the connection) |
22:32:31 | * | nsf quit (Quit: WeeChat 1.9) |
22:32:35 | * | mahmudov quit (Ping timeout: 240 seconds) |
22:38:07 | FromGitter | <genotrance> is it possible to run threads in an async fashion? |
22:38:35 | FromGitter | <zacharycarter> async is single threaded |
22:38:44 | FromGitter | <zacharycarter> but you could spawn a thread and use async in that thread |
22:39:13 | FromGitter | <Varriount> @Bennyelg https://gist.github.com/Varriount/9e84c48baa4fd5ea22558031bfab3554 |
22:39:31 | FromGitter | <Varriount> @Bennyelg Feel free to ask questions. |
22:40:09 | FromGitter | <zacharycarter> code is so clean @Varriount |
22:41:23 | FromGitter | <genotrance> @zacharycarter: thing is that i call a C function from which I need the return value, I've been using ^ to wait on the thread to return but that blocks async |
22:41:43 | FromGitter | <genotrance> i'm wondering if I can use a channel, again, it should allow waiting on a channel async |
22:42:11 | FromGitter | <zacharycarter> yeah use a channel or shared memory one of the two |
22:45:58 | FromGitter | <genotrance> okay, figured it out => p = spawn proc(); while not p.isReady(): await sleepAsync(X) |
22:53:29 | FromGitter | <zacharycarter> it'd be nice if this was a little more specific |
22:53:58 | FromGitter | <zacharycarter> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59c44306bc4647297460cdca] |
22:54:08 | FromGitter | <zacharycarter> I can't tell what file is including stdbool |
22:54:15 | FromGitter | <zacharycarter> or really stdlib_os |
22:57:15 | FromGitter | <genotrance> okay, so my application is crashing due to an access violation which doesn't happen when I run it within GDB |
22:57:33 | FromGitter | <ephja> well there you go |
22:57:51 | FromGitter | <ephja> gdb to the rescue ;) |
22:58:04 | FromGitter | <genotrance> faulting module path is ntdll.dll, fault offset: 0x00046edf |
22:58:07 | FromGitter | <genotrance> any ideas? :D |
22:58:11 | FromGitter | <zacharycarter> share some code? |
22:59:35 | * | relax quit (Ping timeout: 240 seconds) |
23:00:13 | FromGitter | <zacharycarter> seriously how am I supposed to do anything with the error I posted above? |
23:00:28 | FromGitter | <genotrance> @zacharycarter: https://gist.github.com/genotrance/397479572eed0dbb554d026d9d3d5286 |
23:03:26 | FromGitter | <zacharycarter> can you also post pg_acoustid/acoustid_compare.c |
23:03:28 | FromGitter | <zacharycarter> ? |
23:04:05 | FromGitter | <zacharycarter> nm found it on github |
23:04:17 | FromGitter | <genotrance> but i've commented out a bunch of stuff, let me post |
23:04:55 | FromGitter | <zacharycarter> okay |
23:05:35 | FromGitter | <genotrance> https://gist.github.com/genotrance/7eaca0738ec770a77d4e3745168f57ee |
23:05:46 | FromGitter | <Varriount> @zacharycarter That first file has been translated directly from AWS's Python API example. |
23:05:52 | FromGitter | <edubart> @Yardanico indeed we're getting to the point to see some deep learning in nim, the repo you mentioned is my first step, @mratsim already stepped in by starting to create a tensor library, I'm joining forces with him trying thus we are trying to create a minor ecosystem for deep learning in nim, something like pytorch, while he works on the tensor library I'm planing to work on things like visualization, io, |
23:05:52 | FromGitter | ... preprocessing, demos and other deep learning goodies, hopefully in the future we can attract more devs, I do see see nim with great potential to work in deep learning |
23:06:00 | FromGitter | <Varriount> @zacharycarter Unless you were talking about the second file? |
23:06:32 | FromGitter | <zacharycarter> @Varriount I just meant in general it's very clean :) |
23:07:00 | FromGitter | <zacharycarter> @edubart I'd be interested to see where this effort goes, my company is just starting to get into deep learning |
23:07:38 | FromGitter | <genotrance> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59c4463abc4647297460dc00] |
23:07:47 | FromGitter | <mratsim> ooohh mmyyyy eeyyeeesss |
23:08:22 | FromGitter | <genotrance> werd, that didn't work too well! |
23:08:28 | FromGitter | <zacharycarter> :P |
23:08:32 | FromGitter | <zacharycarter> try surrounding with ``` ``` |
23:08:37 | FromGitter | <zacharycarter> err 3 backticks |
23:08:42 | FromGitter | <zacharycarter> `````` |
23:09:08 | FromGitter | <genotrance> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59c44693bc4647297460dca6] |
23:09:52 | FromGitter | <genotrance> that's autodup.h to fill in the missing stuff that was needed to pad out the stuff inherited from postgresql |
23:10:52 | FromGitter | <zacharycarter> yeah still trying to get this to run heh not having much luck |
23:11:51 | FromGitter | <genotrance> try this: https://www.dropbox.com/s/149gz1k3taoehp8/autodup.zip?dl=0 |
23:12:24 | FromGitter | <genotrance> first day on Gitter, I'm bursting eyes everywhere |
23:13:45 | FromGitter | <genotrance> try autodup -M <path to music collection> and it will scan for duplicate songs |
23:21:38 | * | mahsav2 joined #nim |
23:21:57 | * | mahsav quit (Ping timeout: 260 seconds) |
23:23:54 | * | vlad1777d quit (Ping timeout: 252 seconds) |
23:26:02 | * | mahsav2 quit (Ping timeout: 260 seconds) |
23:28:58 | * | yglukhov joined #nim |
23:33:15 | * | yglukhov quit (Ping timeout: 252 seconds) |
23:47:52 | * | odc joined #nim |