00:03:46 | * | endragor joined #nim |
00:03:57 | * | yglukhov quit (Ping timeout: 260 seconds) |
00:08:05 | * | endragor quit (Ping timeout: 240 seconds) |
00:16:26 | FromGitter | <mratsim> that’s what I did |
00:18:08 | * | endragor joined #nim |
00:21:49 | FromGitter | <data-man> @Varriount: you need a tool for compressing large files? |
00:22:57 | * | endragor quit (Ping timeout: 240 seconds) |
00:25:38 | * | derlafff joined #nim |
00:33:03 | * | elrood quit (Quit: Leaving) |
00:48:16 | FromGitter | <gogolxdong> morning ,I mean like cgi or reverse proxy to parse php |
00:52:21 | FromGitter | <gogolxdong> staticDir servers statically or is it mimes ? |
00:54:35 | * | endragor joined #nim |
00:59:11 | * | endragor quit (Ping timeout: 248 seconds) |
01:00:59 | * | endragor joined #nim |
01:05:23 | * | endragor quit (Ping timeout: 246 seconds) |
01:07:09 | * | yglukhov joined #nim |
01:10:38 | FromGitter | <gogolxdong> I have done like ``` |
01:10:54 | FromGitter | <gogolxdong> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59fbc21d976e63937e1e5f02] |
01:11:20 | * | yglukhov quit (Ping timeout: 246 seconds) |
01:12:44 | * | vivus joined #nim |
01:22:36 | * | endragor joined #nim |
01:30:27 | * | Kingsquee joined #nim |
01:32:02 | * | endragor quit (Ping timeout: 260 seconds) |
01:39:09 | * | JappleAck quit (Quit: Leaving) |
01:40:50 | * | endragor joined #nim |
01:45:05 | * | endragor quit (Ping timeout: 240 seconds) |
01:47:29 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
01:56:44 | FromGitter | <Varriount> @data-man Well, having one one hand would help. |
01:57:04 | FromGitter | <Varriount> I just remember discussion about a format that was better than gz |
02:17:46 | * | chemist69 quit (Ping timeout: 264 seconds) |
02:21:51 | * | vivus quit (Quit: Leaving) |
02:21:57 | * | yglukhov joined #nim |
02:26:52 | * | yglukhov quit (Ping timeout: 260 seconds) |
02:30:19 | FromGitter | <data-man> @Varriount: lzma2, zstd ⏎ Also, see https://github.com/inikep/lzbench |
02:30:47 | * | endragor joined #nim |
02:31:05 | * | chemist69 joined #nim |
02:35:13 | * | endragor quit (Ping timeout: 248 seconds) |
02:35:50 | FromGitter | <data-man> If you need a fast utility for compressing files, then I recommend http://mattmahoney.net/dc/zpaq.html ⏎ For Windows see my patched version https://encode.ru/threads/456-zpaq-updates?p=52794&viewfull=1#post52794 |
03:00:38 | * | endragor joined #nim |
03:05:10 | * | endragor quit (Ping timeout: 255 seconds) |
03:14:57 | * | endragor joined #nim |
03:22:57 | * | endragor quit (Ping timeout: 240 seconds) |
03:33:32 | * | yglukhov joined #nim |
03:37:57 | * | yglukhov quit (Ping timeout: 240 seconds) |
03:48:25 | subsetpark | Is this a bug, or just the compiler being particularly unhelpful? https://github.com/nim-lang/Nim/issues/6679 |
03:50:40 | * | endragor joined #nim |
03:55:11 | * | endragor quit (Ping timeout: 248 seconds) |
03:59:17 | FromGitter | <Varriount> subsetpark: Has your compiler been built with stacktraces enabled? |
03:59:25 | FromGitter | <Varriount> Also, it's a bug. |
03:59:51 | FromGitter | <Varriount> @Gooseus currently going through the rest of the signing code. What kind of naming convention do you normally follow? |
03:59:55 | subsetpark | nope. i mean, it's clear what's happening, i would just expect there is friendlier way to handle it |
04:00:13 | FromGitter | <Varriount> @Gooseus I normally follow https://nim-lang.org/docs/nep1.html |
04:00:39 | * | endragor joined #nim |
04:48:41 | * | yglukhov joined #nim |
04:50:22 | * | shiro` quit (Ping timeout: 252 seconds) |
04:51:23 | * | endragor quit (Remote host closed the connection) |
04:53:17 | * | yglukhov quit (Ping timeout: 260 seconds) |
04:58:23 | * | dddddd quit (Remote host closed the connection) |
05:05:25 | * | rauss quit (Quit: WeeChat 1.9.1) |
05:06:51 | * | rauss joined #nim |
05:45:25 | FromGitter | <Varriount> Hm. We have plenty of operating systems which use the "everything is a file" ideology. Are there any operating systems out there which use "everything is a relational database/table"? |
05:53:45 | * | yglukhov joined #nim |
05:58:04 | * | yglukhov quit (Ping timeout: 258 seconds) |
06:04:27 | * | lastjedi joined #nim |
06:13:40 | * | Vladar joined #nim |
06:14:04 | * | _RPG_ quit (Quit: Leaving) |
06:22:45 | * | miran_ joined #nim |
06:37:56 | * | nsf joined #nim |
06:48:03 | * | Gertm_ joined #nim |
06:48:53 | * | Gertm_ quit (Client Quit) |
06:51:51 | * | endragor joined #nim |
06:56:01 | * | endragor quit (Ping timeout: 240 seconds) |
06:56:59 | * | Arrrr joined #nim |
06:56:59 | * | Arrrr quit (Changing host) |
06:56:59 | * | Arrrr joined #nim |
07:00:34 | * | yglukhov joined #nim |
07:05:03 | * | miran_ quit (Ping timeout: 248 seconds) |
07:05:10 | * | yglukhov quit (Ping timeout: 264 seconds) |
07:29:35 | * | vlad1777d quit (Ping timeout: 248 seconds) |
07:32:43 | * | SusWombat joined #nim |
07:33:12 | SusWombat | Haha i started reading "Crafting Interpreters" and was suprised there is a mention of nimrod/nim |
07:34:46 | SusWombat | Finally i know ehy it was renamed |
07:34:51 | SusWombat | why* |
07:49:04 | * | PMunch joined #nim |
07:51:37 | * | couven92 joined #nim |
08:06:52 | * | yglukhov joined #nim |
08:09:34 | * | yglukhov quit (Read error: Connection reset by peer) |
08:09:48 | * | yglukhov joined #nim |
08:11:06 | * | vlad1777d joined #nim |
08:14:02 | * | PMunch quit (Read error: Connection reset by peer) |
08:14:14 | * | PMunch joined #nim |
08:18:49 | * | claudiuinberlin joined #nim |
08:29:30 | FromGitter | <GULPF> @Araq how do I run a single test file with a specific target? I've tried `tests/testament/tester --targets:"js" run tests/js/ttimes.nim"` but it just result in the test getting skipped |
08:31:16 | Araq | I use 'tt js' |
08:31:32 | Araq | (tt being an alias for tests/testament/tester) |
08:32:08 | * | Kingsquee quit (Quit: https://i.imgur.com/qicT3GK.gif) |
08:35:38 | FromGitter | <GULPF> I don't understand. `tt js tests/js/ttimes.nim`? That doesn't seem to work |
08:36:03 | Araq | oh sorry |
08:36:23 | Araq | tests/testament/tester cat js # run category 'js' |
08:37:10 | Araq | you can also run a single test via 'run' |
08:37:27 | Araq | in fact, tester tells you what's possible |
08:37:48 | Araq | Usage: |
08:37:49 | Araq | tester [options] command [arguments] |
08:37:49 | Araq | Command: |
08:37:50 | Araq | all run all tests |
08:37:52 | Araq | c|category <category> run all the tests of a certain category |
08:37:54 | Araq | r|run <test> run single test file |
08:37:56 | Araq | html generate $1 from the database |
08:37:58 | Araq | Arguments: |
08:38:00 | Araq | arguments are passed to the compiler |
08:38:02 | Araq | Options: |
08:38:04 | Araq | --print also print results to the console |
08:38:06 | Araq | --failing only show failing/ignored tests |
08:38:08 | Araq | --targets:"c c++ js objc" run tests for specified targets (default: all) |
08:38:10 | Araq | --nim:path use a particular nim executable (default: compiler/nim) |
08:38:38 | FromGitter | <GULPF> yea, but how do I run a single test in the JS backend? the tester only tells how to run an entire category in JS or a single test in C |
08:40:33 | * | lastjedi quit (Ping timeout: 248 seconds) |
08:40:52 | FromGitter | <GULPF> I would expect `run` to use the target(s) specified by the `--targets` parameter, but it does something else |
08:40:55 | FromGitter | <mratsim> Is there a way to get the C mangled name of a variable? |
08:42:41 | FromGitter | <mratsim> I need it for openMP ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59fc2c01614889d47534a609] |
08:43:35 | FromGitter | <GULPF> oh, `--targets` means that it only runs tests that are supposed to run in the specified targets? then the only way to affect the compiler backend is by using the JS category? |
08:45:15 | Araq | GULPF: I don't know what --targets does, my bet is that it's an additional filter |
08:45:33 | Araq | to run a single test use --run |
08:46:46 | FromGitter | <mratsim> Oh astToStr maybe |
08:47:46 | Araq | mratsim I remember a hack with {.emit: "`nimVar`".} |
08:48:06 | FromGitter | <mratsim> Ok will try later in the day :) |
08:48:16 | * | endragor joined #nim |
08:51:53 | FromGitter | <GULPF> @Araq but `run` always uses c backend :( I've looked at the code now and it looks like the js category is the only way to compile the tests to js. Would you accept a PR to add a `--force-targets` or similar that tells the tester which targets to use? |
08:53:49 | Araq | no just change the implementation of --targets instead |
08:55:20 | FromGitter | <GULPF> ok |
09:01:35 | * | PMunch quit (Ping timeout: 240 seconds) |
09:19:36 | * | PMunch joined #nim |
09:27:48 | * | endragor quit (Remote host closed the connection) |
09:28:16 | * | endragor joined #nim |
09:32:31 | * | endragor quit (Ping timeout: 252 seconds) |
09:42:58 | couven92 | Araq, how do I get the platforms module into my code? import platforms is not allowed, and the 'lib/system/platforms.nim' file states "Do not import it directly!" |
09:44:27 | couven92 | Or actually, I want the CpuPlatform enumeration in that module... in order to safely convert CpuPlatform specifiers for nim into the equivalent arch argument for vcc. And I don't want to hardcode i386 when we got a nice comfy enum constant for that |
09:46:10 | Araq | just use the enum |
09:46:19 | couven92 | Araq, doesn't work |
09:46:22 | Araq | if you don't need to import it, it's part of system.nim |
09:47:07 | couven92 | Araq, `Error: undeclared identifier: 'CpuPlatform'` |
09:48:54 | Araq | tbh I don't remember that module's purpose |
09:49:43 | couven92 | It's where we store the defintions for OSes and CPUs supported by the Nim compiler, it's also the module that contains the `hostOS` and `hostCPU` constants |
09:53:34 | * | Ven joined #nim |
09:53:58 | * | Ven is now known as Guest33365 |
10:01:27 | * | thomasross__ joined #nim |
10:03:20 | * | PMunch quit (Ping timeout: 246 seconds) |
10:03:34 | * | PMunch joined #nim |
10:03:52 | * | thomasross_ quit (Ping timeout: 252 seconds) |
10:13:07 | * | vlad1777d quit (Ping timeout: 255 seconds) |
10:38:52 | * | floppydh joined #nim |
10:53:29 | * | Guest33365 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:56:04 | * | iAmSlow joined #nim |
10:56:33 | iAmSlow | hmm can i use Nim whit brackets insted whitespaces :) ? |
11:01:35 | PMunch | iAmSlow, with source code filters |
11:02:18 | * | Snircle joined #nim |
11:04:24 | PMunch | https://forum.nim-lang.org/t/2811 |
11:04:35 | PMunch | #? braces at the top of your file |
11:04:55 | * | Gertm_ joined #nim |
11:05:14 | * | Ven joined #nim |
11:05:39 | * | Ven is now known as Guest30134 |
11:05:39 | * | Guest30134 quit (Client Quit) |
11:06:09 | * | Gertm quit (Quit: ZNC - http://znc.in) |
11:06:09 | * | Gertm_ is now known as Gertm |
11:07:49 | * | vlad1777d joined #nim |
11:11:19 | iAmSlow | PMunch, ty meybe will give it a go |
11:11:41 | PMunch | I think they are soft-deprecated |
11:11:50 | PMunch | As in they will probably be removed in the future |
11:29:07 | * | vlad1777d quit (Remote host closed the connection) |
11:30:44 | * | vlad1777d joined #nim |
11:34:51 | * | lastjedi joined #nim |
11:44:30 | * | arecaceae quit (Remote host closed the connection) |
11:44:49 | * | arecaceae joined #nim |
11:48:23 | * | dddddd joined #nim |
11:49:24 | * | elrood joined #nim |
11:51:54 | floppydh | how are move-semantics coming up ? :3 |
11:53:10 | floppydh | I'm so looking forward to them |
11:55:42 | floppydh | wasn't there someplace to donate for features or so? |
11:55:50 | * | Ven joined #nim |
11:56:13 | * | Ven is now known as Guest43736 |
11:59:08 | FromGitter | <krux02> floppydh: https://gist.github.com/Araq/56aca84ef62bc5b4ddd105ff93624cc0 |
11:59:47 | floppydh | krux02: thanks |
12:00:01 | FromGitter | <krux02> it's still in the concept phase |
12:01:54 | PMunch | floppydh, bountysource? |
12:05:13 | floppydh | PMunch: right |
12:05:47 | floppydh | krux02: is the concept phase a formal thing or do you mean in general? |
12:06:57 | * | PMunch quit (Ping timeout: 240 seconds) |
12:07:55 | FromGitter | <krux02> in Nim there is very little formal at all |
12:08:02 | floppydh | krux02: right |
12:09:08 | FromGitter | <krux02> normally in nim things are just implemented with no official concept phase at all |
12:09:17 | FromGitter | <krux02> we just chat abut it here |
12:10:00 | floppydh | krux02: just wondered how much attention move-sems currently get and if there are major roadblocks but I haven't finished the blog-post yet |
12:15:10 | * | Guest43736 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
12:38:18 | FromGitter | <krux02> floppydh: It is pretty active and I don't know any big roadblocks at least not nechnical ones |
12:38:28 | * | yglukhov quit (Remote host closed the connection) |
12:38:30 | floppydh | krux02: that's great to hear |
12:44:06 | * | yglukhov joined #nim |
12:48:15 | * | Jesin quit (Remote host closed the connection) |
12:53:07 | Arrrr | First nim needs to reach v1.0. Then fix bugs once nim goes mainstream. Then survive criticism and improve the core. Then i suppose they will begin to work in v2.0, which includes this pointer free magic |
12:54:50 | floppydh | Ohhhh... so far, I thought move-sems are coming pre 1.0 :( |
12:55:41 | FromGitter | <krux02> well I think gc is magic |
12:56:06 | Arrrr | I think araq said some things would be implemented soon, but others required to migrate the runtime |
12:56:51 | Arrrr | For example, make changes in stlib |
12:56:54 | Arrrr | *stdlib |
13:02:33 | floppydh | won't move-sems be some of a solution for nims string-performance issues? |
13:02:47 | floppydh | or am I actually interpreting this wrong? |
13:06:45 | * | iAmSlow quit (Quit: Leaving) |
13:13:42 | FromGitter | <mratsim> Ah the string performance issue, I think no language is spared from this :P, between move semantics, immutable strings and current implementations, iirc GC-based string are faster |
13:19:33 | floppydh | mratsim: GC-based strings are faster? - what are GC-based strings? |
13:20:10 | Araq | strings that are allocated with Nim's GC |
13:21:00 | floppydh | I thought the issue atm is that there are too many copies due to no escape-analysis and also no explicit move-sems? |
13:22:44 | Araq | performance is not the reason I would like to replace the existing runtime |
13:23:29 | floppydh | but there would be benefit still no? |
13:23:32 | floppydh | benefits* |
13:23:48 | Araq | give me a good benchmark |
13:24:57 | FromGitter | <mratsim> Well for me the benefits would be compatibility with OpenMP. Can't allocate heap memory in an OpenMP sections. |
13:24:58 | floppydh | have none ofc. just guessing that move-sems reduce the amount of copies? |
13:26:06 | Araq | the compiler already moves strings |
13:26:11 | floppydh | oh |
13:26:30 | Araq | we can detect more cases but that's orthogonal to the whole "destructors" concept |
13:27:09 | floppydh | btw. are new move-sem destructors related to whats currently named destructors in the manual? |
13:27:20 | Araq | yes |
13:27:27 | floppydh | ah okay |
13:27:45 | Araq | I suppose it's time for another live session about destructors |
13:27:54 | floppydh | ! yes please :) |
13:27:55 | Araq | more and more things are obvious how to do |
13:28:50 | floppydh | Araq: but you agree that they won't land before 2.0? |
13:30:34 | Araq | ok, so here is what I think |
13:31:13 | Araq | they are not on the "critical path" to version 1. |
13:31:31 | Araq | they are behind a switch, currently named --newruntime |
13:32:24 | Araq | I hope to have them stable enough within months. |
13:32:37 | Araq | and I encourage people to play with them |
13:33:10 | Araq | then eventually the existing runtime will be ported to use destructors |
13:33:25 | Araq | but that's for version 2 |
13:33:34 | floppydh | oh yay sounds good :3 |
13:34:05 | floppydh | I'll totally put some time into using them |
13:34:30 | floppydh | and report bugs a monkey can find, that's about my skill-set |
13:35:47 | Araq | btw for the toy benchmark I did |
13:35:50 | Araq | it was: |
13:36:30 | Araq | Nim's GC strings < C++'s STL strings < Nim's destructor-based strings |
13:36:52 | Araq | a < b means "a is faster than b" |
13:37:25 | Araq | so much for "omg, GC is killing my performance" crowd :P |
13:37:29 | floppydh | :D |
13:38:13 | floppydh | stl strings have some neat small-string-optimizations apparently? |
13:38:48 | Araq | yes I know |
13:39:06 | Araq | my benchmark concatened longer strings so SSO didn't help :P |
13:39:11 | floppydh | :) |
13:39:34 | floppydh | idk how those work anyway, could something like that be done in Nim as well? |
13:39:56 | Araq | yeah but it's a questionable optimization |
13:39:57 | floppydh | but that sounds really nice |
13:40:16 | Araq | Rust chose to not do SSO |
13:40:20 | floppydh | interesting |
13:41:09 | Araq | more critical is to get allocators right |
13:41:59 | subsetpark | With all this runtime discussion I think it’s time to acknowledge the truth that’s staring us all in the face: nim should be moved to the BEAM |
13:42:09 | floppydh | subsetpark: good one |
13:42:46 | Araq | that was mean ;-) |
13:45:50 | * | sleepyqt joined #nim |
13:48:22 | Arrrr | How much faster is GC string in comparison to destructors approach? |
13:49:25 | FromGitter | <krux02> GC strings are not generally faster than destructor based trings |
13:50:56 | Arrrr | Araq says they are actuall faster in nim. But i wouldn't mind if they are not too slow. Depends on what operations |
13:51:28 | subsetpark | I wonder about when strings are really the best choice for performance-critical code, to be honest |
13:51:41 | FromGitter | <krux02> well they are not |
13:51:58 | subsetpark | When you have enums for nonce values, regexes for regex stuff, templates for large-scale interpolation... |
13:52:04 | FromGitter | <krux02> but also just saying strings is also not very specific |
13:52:13 | subsetpark | Even ropes, though I know Araq doesn't find those particularly useful |
13:52:20 | FromGitter | <krux02> there are a lot of things you can do with strings and a lot of ways to do it with strings |
13:52:32 | Araq | yes, too many. |
13:52:47 | Araq | that's why you can't really optimize them :P |
13:52:55 | Araq | or even come up with a design that doesn't suck |
13:53:24 | FromGitter | <krux02> I think a simple easy to understand design is the best |
13:53:58 | FromGitter | <krux02> so that it is possible to reason if strings are the right thing to use or not |
14:02:02 | * | Jesin joined #nim |
14:05:57 | FromGitter | <krux02> In theory it would be possible to have a long string that preallocates for example 4GB of virtual memory for each string, and then when you append to it, it allocats memory pages and appends them to the string. So there would never be a memory reallocation when you grow the string unless you exceed the 4GB size. But this would never work on 32 bit systems and it needs platform dependent implementations and it is not easy |
14:05:57 | FromGitter | ... to understand |
14:09:57 | Araq | that's useful when I have 4GB sized strings |
14:10:22 | Araq | which I never do. but you can make the same argument for 2MB strings and then it becomes a useful idea |
14:11:13 | * | arnetheduck quit (Ping timeout: 248 seconds) |
14:23:41 | livcd | i solved my nim/nimble issue. I removed everything and cleaned up my path |
14:23:59 | livcd | using the "default" mingw though |
14:24:50 | livcd | thanks again for everyone's hints and tips :) |
14:24:58 | * | Jesin quit (Quit: Leaving) |
14:26:20 | * | couven92 quit (Read error: Connection reset by peer) |
14:32:03 | FromGitter | <mratsim> Btw I would love to know more about Nim memory allocation today and tomorrow. For example, if you create and then destroy seqs/strings in a loop, what happens regarding: memory reuse instead of malloc/free |
14:32:29 | FromGitter | <andreaferretti> +1 |
14:32:51 | FromGitter | <mratsim> If memory reuse, what about fragmentation, if not when will we have a memory pool in the stdlib :p |
14:33:30 | Arrrr | +1 |
14:33:35 | * | Jesin joined #nim |
14:42:10 | Araq | seriously. '+1' for vague misconceptions? :P |
14:42:49 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
14:42:50 | * | Ven joined #nim |
14:43:13 | * | Ven is now known as Guest66351 |
14:43:32 | Araq | so what do you want to know? currently the GC allocates new seqs and frees them lazily. |
14:44:47 | * | claudiuinberlin joined #nim |
14:45:22 | Araq | fragmentation is a problem of the allocator, not of the GC. though certain GC algorithms which copy can prevent fragmentation much more successfully than an ordinary allocator can |
14:45:57 | Araq | Nim doesn't use any kind of copying GC though (which sucks btw, copying GCs are awesome) |
14:48:13 | Araq | memory pools have quite different performance characteristics and are mostly incompatible with Nim's GC. I could give you pushAllocator(); GC_disable(); ... popAllocator() |
14:49:33 | * | RPG joined #nim |
14:49:52 | * | vivus joined #nim |
14:50:14 | * | RPG is now known as Guest2656 |
14:51:54 | Araq | but I can't do everything, why don't you learn more about Nim's internals and fix what's wrong for you. gc_ms.nim is 535 lines of code |
14:54:16 | Araq | most other language implementations have much more difficult runtimes. |
14:59:00 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
15:06:44 | * | claudiuinberlin joined #nim |
15:07:01 | FromGitter | <mratsim> I see, I thought Nim's GC had some kind of caching mechanism for memory allocated/deallocated in tight loop. |
15:08:01 | FromGitter | <mratsim> Btw interesting read on Facebook internal replacement of std::vector https://github.com/facebook/folly/blob/master/folly/docs/FBVector.md |
15:08:24 | * | arnetheduck joined #nim |
15:08:40 | * | miran quit (Quit: Page closed) |
15:10:07 | Araq | already know it ;-) |
15:10:12 | FromGitter | <Varriount> @Araq Just read that gist on the new programming model - it looks very promising! |
15:11:06 | FromGitter | <Varriount> The one question I do have - how backwards-incompatible is it? |
15:13:44 | Araq | opinions differ on that. I can make it very compatible but the performance characterics will be quite different, I think |
15:14:21 | Araq | hardest open question is .closures |
15:14:51 | Araq | I can live with 'ref' becoming an atomic RC'ed pointer plus some cycle collector |
15:15:13 | Araq | but .closures are something the programmer has very little control over |
15:28:21 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
15:28:39 | * | claudiuinberlin joined #nim |
15:30:31 | * | miran_ joined #nim |
15:33:06 | vivus | is nim getting a non-backwards compatible update? |
15:39:18 | FromGitter | <mratsim> For v2, so a few years away |
15:45:00 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
15:47:59 | * | TjYoco joined #nim |
15:50:08 | * | marenz_ joined #nim |
15:56:12 | * | SenasOzys joined #nim |
15:56:39 | * | claudiuinberlin joined #nim |
15:59:08 | * | PMunch joined #nim |
15:59:34 | * | floppydh quit (Quit: WeeChat 1.9.1) |
16:06:52 | * | arnetheduck quit (Ping timeout: 252 seconds) |
16:07:03 | * | Vladar quit (Remote host closed the connection) |
16:07:40 | * | Guest66351 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
16:14:41 | yglukhov | dom96: ping |
16:15:22 | yglukhov | dom96: could you pls merge and bump gtk again? https://github.com/nim-lang/gtk2/pull/24 |
16:16:35 | * | sz0 joined #nim |
16:18:27 | CcxWrk | Is there no interface to POSIX ioctl/fcntl functions? |
16:19:01 | CcxWrk | Oh, nevermind. Found the posix module. |
16:24:17 | * | Ven joined #nim |
16:24:41 | * | Ven is now known as Guest27335 |
16:26:27 | * | TjYoco quit (Remote host closed the connection) |
16:26:43 | CcxWrk | Is there a direct access to argv? |
16:26:55 | * | TjYoco joined #nim |
16:32:35 | * | TjYoco quit (Ping timeout: 240 seconds) |
16:36:16 | CcxWrk | The posix module seems to lack the pts-related interfaces (posix_openpt,grantpt,unlockpt,ptsname). |
16:37:34 | FromGitter | <andreaferretti> @Araq +1 was for the request to know more about the strategy of the allocator in Nim |
16:37:53 | FromGitter | <andreaferretti> > Btw I would love to know more about Nim memory allocation today and tomorrow. For example, if you create and then destroy seqs/strings in a loop, what happens regarding: memory reuse instead of malloc/free |
16:38:50 | * | TjYoco joined #nim |
16:41:37 | * | lastjedi quit (Ping timeout: 248 seconds) |
16:42:27 | * | PMunch quit (Quit: Leaving) |
16:53:36 | * | TjYoco quit (Quit: Leaving) |
16:55:28 | Araq | andreaferretti: Did I answer these questions? |
16:56:50 | * | Trustable joined #nim |
16:57:24 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
16:58:03 | * | xet7 quit (Quit: Leaving) |
16:58:44 | * | xet7 joined #nim |
16:59:58 | FromGitter | <andreaferretti> uhm... not quite |
17:00:08 | FromGitter | <andreaferretti> for instance: when the GC releases memory |
17:00:18 | FromGitter | <andreaferretti> is this given back to the OS or the allocator? |
17:00:39 | FromGitter | <andreaferretti> if the second, how does the allocator deal with fragmentation? |
17:00:47 | * | Sentreen quit (Ping timeout: 248 seconds) |
17:00:56 | FromGitter | <andreaferretti> not that you have necessarily to answer immediately |
17:01:09 | FromGitter | <andreaferretti> my +1 was because I would like to understand these internals more |
17:01:17 | FromGitter | <andreaferretti> it would make for a nice blog post :-) |
17:01:56 | Araq | it's an allocator, nothing fancy in there, allocations are size based, memory is rarely returned back to the OS |
17:02:12 | Araq | it distinguishes between small and big allocations |
17:02:44 | Araq | it's thread local and so doesn't have much complexity |
17:03:20 | Araq | the GC runs when some memory threshold is reached, that theshold is dynamically adjusted |
17:03:38 | Araq | depending on the number/size of the live objects |
17:04:13 | Araq | roughly similar to how a seq determines its capacity |
17:07:39 | FromGitter | <andreaferretti> thank you! :-) |
17:14:59 | * | Sentreen joined #nim |
17:19:13 | federico3 | CcxWrk: try paramStr |
17:22:27 | * | thomasross__ quit (Ping timeout: 240 seconds) |
17:24:38 | * | thomasross joined #nim |
17:26:57 | * | yglukhov quit (Remote host closed the connection) |
17:36:40 | * | Jesin quit (Quit: Leaving) |
17:38:37 | * | Jesin joined #nim |
17:45:55 | shashlick | dom96: so what's the consensus? code changes in choosenim to look for http_proxy env. variable and pass it onto httpclient or changes in httpclient itself to do this automatically? |
17:46:47 | * | thomasross quit (Read error: Connection reset by peer) |
17:47:03 | * | thomasross joined #nim |
17:52:48 | * | Trustable quit (Remote host closed the connection) |
17:57:03 | FromGitter | <Varriount> What we really need is a low-level http library for those who know what they're doing, and a high level one for those who don't care. |
17:57:34 | FromGitter | <Varriount> shashlick: What is http_proxy? |
18:00:03 | * | claudiuinberlin joined #nim |
18:04:21 | * | SenasOzys quit (Ping timeout: 240 seconds) |
18:09:18 | * | lastjedi joined #nim |
18:10:26 | * | Vladar joined #nim |
18:10:45 | shashlick | varriount: basically how proxies are typically defined - an environment variable "http_proxy" or "https_proxy" |
18:11:29 | shashlick | I have them defined on Windows but choosenim doesn't support proxies so I'm wondering if choosenim should read the env. variables or if httpclient should |
18:12:36 | livcd | yglukhov: some samples from nimx give me this : view_event_handling.nim(8, 8) Error: method is not a base |
18:12:43 | * | SenasOzys joined #nim |
18:13:40 | shashlick | if choosenim does it then it can pass the info to libcurl and httpclient, whereas if only httpclient has it then choosenim will have to pass the info onto libcurl |
18:22:51 | shashlick | looks like curl also detects http_proxy automatically, seems the code belongs in httpclient |
18:24:51 | FromGitter | <Yardanico> yes, because choosenim uses httpclient everywhere except on macos |
18:33:43 | * | sz0 quit (Quit: Connection closed for inactivity) |
18:39:27 | shashlick | yardanico: I guess the next question then is how to handle http_proxy vs https_proxy since newHttpClient() is where you pass the proxy details, but you don't know the URL at that time |
18:43:03 | * | sleepyqt quit (Quit: Leaving) |
18:52:45 | * | JappleAck joined #nim |
18:55:27 | FromGitter | <mratsim> @Araq @andreaferretti thanks for the allocator details! |
19:07:15 | * | thomasross_ joined #nim |
19:08:46 | * | thomasross quit (Ping timeout: 264 seconds) |
19:09:29 | * | thomasross__ joined #nim |
19:10:40 | * | thomasross__ quit (Read error: Connection reset by peer) |
19:10:56 | * | thomasross__ joined #nim |
19:11:28 | * | thomasross__ quit (Max SendQ exceeded) |
19:11:55 | * | thomasross__ joined #nim |
19:12:21 | * | Guest27335 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
19:12:23 | * | thomasross__ quit (Max SendQ exceeded) |
19:13:06 | * | thomasross_ quit (Ping timeout: 258 seconds) |
19:13:10 | * | thomasross__ joined #nim |
19:14:07 | * | thomasross__ quit (Read error: Connection reset by peer) |
19:17:09 | * | xkapastel joined #nim |
19:20:02 | * | yglukhov joined #nim |
19:21:48 | FromGitter | <brentp> anyone created or seen an interval tree for nim? |
19:23:10 | * | smt joined #nim |
19:29:48 | FromGitter | <Varriount> @brentp I think it was mentioned was or twice in the past. I don't know if anything came of it. |
19:31:26 | FromGitter | <brentp> ok. guess I'll have to implement or hack around it. |
19:33:34 | * | yglukhov quit (Read error: Connection reset by peer) |
19:34:09 | * | yglukhov joined #nim |
19:46:46 | * | Vladar quit (Read error: Connection reset by peer) |
19:47:32 | FromGitter | <zacharycarter> @Araq - is karax ever going to / does it support multiple page apps with routing etc |
19:49:05 | Araq | if you tell me what that takes :-) |
19:49:51 | * | SenasOzys quit (Ping timeout: 248 seconds) |
19:50:50 | FromGitter | <zacharycarter> I'm not even sure :/ I'll have to do some research on how elm does this |
19:53:52 | * | lurker joined #nim |
20:11:10 | * | Arrrr quit (Quit: Leaving.) |
20:16:12 | yglukhov | dom96: you around? |
20:18:35 | arecaceae | I'm fighting an "ambiguous call"-error, can I import the symbol in a way explicitly from a module so that this is solved? |
20:19:02 | arecaceae | "from ... import foo" doesn't seem to be enough |
20:21:21 | arecaceae | ah "except" for import, got it |
20:28:40 | FromGitter | <jamesalbert> hey, would anyone know how to open a file local to the module instead of where the module is being called from? |
20:29:26 | FromGitter | <jamesalbert> meaning I have a module, I want to open a config file in the same directory as the module, but it keeps trying to open from the directory I'm calling the module from |
20:29:47 | FromGitter | <Yardanico> currentSourcePath |
20:29:50 | FromGitter | <jamesalbert> ty |
20:30:02 | FromGitter | <Yardanico> currentSourcePath() returns current path of the current file |
20:30:15 | * | couven92 joined #nim |
20:30:22 | FromGitter | <Yardanico> https://nim-lang.org/docs/system.html#currentSourcePath.t, |
20:31:17 | FromGitter | <jamesalbert> exactly what I needed thanks |
20:32:33 | federico3 | any place in the compiler repo to put integration tests? |
20:34:18 | * | Sentreen quit (Ping timeout: 246 seconds) |
20:40:27 | dom96 | yglukhov: I am now |
20:40:45 | yglukhov | hey, how are you |
20:40:59 | dom96 | good, just got back from Liverpool :) |
20:41:27 | yglukhov | so there's another nim breakage in gtk that needs a version bump =) |
20:41:35 | yglukhov | also wanted to get back to nimble problem |
20:41:40 | yglukhov | absolute imports |
20:42:38 | federico3 | dom96: hey, would you mind a directory for integration tests in the Nim repo? |
20:42:41 | dom96 | yglukhov: I'll just add you as a collaborator to gtk2 :) |
20:42:51 | yglukhov | sounds good |
20:42:54 | dom96 | federico3: That's a question for Araq |
20:43:10 | dom96 | yglukhov: I'll create and zip up a repro code sample |
20:43:25 | dom96 | but maybe not tonight |
20:43:33 | yglukhov | dom96: maybe just push it to some branch |
20:43:46 | yglukhov | we shall merge it when the issue is solved |
20:43:48 | yglukhov | =) |
20:43:52 | dom96 | Your PR? |
20:44:04 | yglukhov | any branch you like |
20:44:12 | dom96 | What would be the purpose of that? :) |
20:44:39 | yglukhov | so there would remain a test suite for that |
20:45:18 | yglukhov | after the issue is solved. hopefully you dont object that absolute imports should work as well as relatives |
20:45:21 | yglukhov | =) |
20:46:02 | dom96 | It's already in a branch though (your branch) |
20:46:21 | dom96 | I still don't understand what putting it in another branch would achieve |
20:46:41 | yglukhov | nono. i mean, you could write a test that my pr doesn't pass |
20:46:51 | yglukhov | the test that reproduces your problem |
20:47:17 | yglukhov | does that make sense? |
20:47:25 | dom96 | oh, my test. Maybe, I'll have to see (it's a Nim issue if anything) |
20:47:54 | * | Sentreen joined #nim |
20:48:12 | yglukhov | yeah, have you seen my comment? regardign the --nobabelpath? |
20:48:12 | Araq | don't we already have that? tests/untestable ? |
20:48:41 | federico3 | Araq: thanks |
20:51:14 | * | sz0 joined #nim |
20:51:48 | dom96 | yglukhov: I need to get myself acquainted with this again, but from my previous post: this is about `nim c` not `nimble c` |
20:52:52 | * | NimBot joined #nim |
20:53:00 | yglukhov | dom96: errr... how is nim related here? i thought i was fixing nimble problem. =) |
20:54:03 | dom96 | The point is that your fix encourages problems when using that workflow |
20:55:26 | yglukhov | man i totally misunderstood that one %) |
20:55:59 | yglukhov | but in such case. isn't it a nim bug then? |
20:56:51 | yglukhov | and nimble should work correctly no matter which bugs it exposes? because those are still bugs? =) |
20:57:12 | dom96 | Perhaps, but I want Araq's opinion on this then |
20:57:24 | dom96 | (I predict there is a chance he won't consider it a bug) |
20:58:31 | yglukhov | ok, i'm intrigued =) |
21:00:53 | Araq | what's wrong with Nim? |
21:01:20 | dom96 | https://github.com/nim-lang/nimble/pull/401 |
21:01:28 | yglukhov | Araq: https://github.com/nim-lang/nimble/pull/400 |
21:02:59 | Araq | I implemented import $package fwiw |
21:03:30 | * | vlad1777d quit (Ping timeout: 258 seconds) |
21:03:37 | Araq | it does the right thing (for me anyway), no messing with --path |
21:04:07 | dom96 | any docs that explain it? |
21:04:44 | Araq | I need to write them but I fear a shit storm |
21:05:00 | Araq | :D |
21:06:53 | yglukhov | err? why not just use package name? |
21:07:42 | Araq | and here we go, I'm simply not gonna say anything further. try it, use it if you like it, if not, don't. |
21:08:23 | dom96 | I can't use it if I don't know what it does... |
21:09:17 | Araq | it works better if you don't know what it does :P |
21:09:59 | Araq | ugh this is so lame, why am I watching this? |
21:10:08 | yglukhov | Araq: i can't "try" it. |
21:10:31 | yglukhov | please read my first comment on https://github.com/nim-lang/nimble/pull/401 |
21:12:06 | Araq | you know, fuck this shit, I'll only watch the last episode instead |
21:12:44 | Araq | yglukhov, yeah ok, well |
21:12:50 | Araq | don't use absolute imports |
21:12:58 | Araq | and if you did, fix your code |
21:13:30 | Araq | it's not like you have a choice anyway, sooner or later you gonna switch computers, right? |
21:14:24 | yglukhov | im not sure what you're talking about. |
21:14:35 | Araq | me neither |
21:15:17 | yglukhov | friday evening? |
21:15:27 | yglukhov | ok, talk to you later =) |
21:16:53 | dom96 | But indeed, that is what I suggested |
21:17:20 | dom96 | Don't use 'import pkgName/module' but 'import module' instead. |
21:17:27 | dom96 | For modules that are inside the `pkgName` directory |
21:21:52 | yglukhov | i like absolute imports more. its like fully-qualified path. that first. second, if absolute imports within a package are not supported, should not be there an error about that? because you know that's pretty sudden discovery to me. after 2 years. |
21:29:08 | yglukhov | anyways though, i don't see how absolute imports harm language design. and if they don't why not just agree that they should work? |
21:50:08 | * | nsf quit (Quit: WeeChat 1.9.1) |
21:55:47 | * | miran_ quit (Quit: Leaving) |
22:03:05 | Calinou | import * from * |
22:03:05 | Calinou | :P |
22:03:59 | Araq | yglukhov, afaik they are supported but there is little motivation in spending work on "supporting obviously bad" things |
22:08:00 | GitDisc | <treeform> Gooseus, are you around where is your s3 nim repo I can't find it? Is this it? https://github.com/aidansteele/aws_sdk.nim |
22:11:36 | GitDisc | <treeform> no its this: https://github.com/Gooseus/nimaws found it! |
22:29:12 | * | Jesin quit (Quit: Leaving) |
22:34:39 | * | lurker quit (Quit: Leaving) |
22:43:31 | * | williepac joined #nim |
22:56:32 | * | claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com) |
22:57:51 | * | williepac left #nim ("Leaving") |
23:01:07 | * | elrood quit (Quit: Leaving) |
23:02:38 | * | couven92 quit (Quit: Client Disconnecting) |
23:16:16 | * | xkapastel quit (Quit: Connection closed for inactivity) |
23:22:31 | * | ipjk joined #nim |
23:23:28 | ipjk | Is this as intended, 2/inf = 0.0? |
23:25:36 | Araq | ipjk, sounds like IEEE floating point semantics |
23:25:51 | Araq | divide by inf to get zero, what's wrong with that? |
23:26:46 | ipjk | inf/2 = inf, am I just confused here? |
23:27:07 | Araq | yes, inf/2 == inf, what else? |
23:27:22 | ipjk | Seems as I am just being stupid then. |
23:27:30 | * | xkapastel joined #nim |
23:27:41 | Araq | half of infinity is still infinity |
23:28:06 | ipjk | Oh, that's a good point. |
23:28:09 | * | ketralni` joined #nim |
23:28:11 | federico3 | half of infinity is infi |
23:28:12 | ipjk | Thanks |
23:28:57 | * | ketralnis quit (Ping timeout: 240 seconds) |
23:30:57 | * | lastjedi quit (Ping timeout: 260 seconds) |