<< 03-11-2017 >>

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:26FromGitter<mratsim> that’s what I did
00:18:08*endragor joined #nim
00:21:49FromGitter<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:16FromGitter<gogolxdong> morning ,I mean like cgi or reverse proxy to parse php
00:52:21FromGitter<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:38FromGitter<gogolxdong> I have done like ```
01:10:54FromGitter<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:44FromGitter<Varriount> @data-man Well, having one one hand would help.
01:57:04FromGitter<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:19FromGitter<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:50FromGitter<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:25subsetparkIs 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:17FromGitter<Varriount> subsetpark: Has your compiler been built with stacktraces enabled?
03:59:25FromGitter<Varriount> Also, it's a bug.
03:59:51FromGitter<Varriount> @Gooseus currently going through the rest of the signing code. What kind of naming convention do you normally follow?
03:59:55subsetparknope. i mean, it's clear what's happening, i would just expect there is friendlier way to handle it
04:00:13FromGitter<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:25FromGitter<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:12SusWombatHaha i started reading "Crafting Interpreters" and was suprised there is a mention of nimrod/nim
07:34:46SusWombatFinally i know ehy it was renamed
07:34:51SusWombatwhy*
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:30FromGitter<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:16AraqI use 'tt js'
08:31:32Araq(tt being an alias for tests/testament/tester)
08:32:08*Kingsquee quit (Quit: https://i.imgur.com/qicT3GK.gif)
08:35:38FromGitter<GULPF> I don't understand. `tt js tests/js/ttimes.nim`? That doesn't seem to work
08:36:03Araqoh sorry
08:36:23Araqtests/testament/tester cat js # run category 'js'
08:37:10Araqyou can also run a single test via 'run'
08:37:27Araqin fact, tester tells you what's possible
08:37:48AraqUsage:
08:37:49Araq tester [options] command [arguments]
08:37:49AraqCommand:
08:37:50Araq all run all tests
08:37:52Araq c|category <category> run all the tests of a certain category
08:37:54Araq r|run <test> run single test file
08:37:56Araq html generate $1 from the database
08:37:58AraqArguments:
08:38:00Araq arguments are passed to the compiler
08:38:02AraqOptions:
08:38:04Araq --print also print results to the console
08:38:06Araq --failing only show failing/ignored tests
08:38:08Araq --targets:"c c++ js objc" run tests for specified targets (default: all)
08:38:10Araq --nim:path use a particular nim executable (default: compiler/nim)
08:38:38FromGitter<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:52FromGitter<GULPF> I would expect `run` to use the target(s) specified by the `--targets` parameter, but it does something else
08:40:55FromGitter<mratsim> Is there a way to get the C mangled name of a variable?
08:42:41FromGitter<mratsim> I need it for openMP ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59fc2c01614889d47534a609]
08:43:35FromGitter<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:15AraqGULPF: I don't know what --targets does, my bet is that it's an additional filter
08:45:33Araqto run a single test use --run
08:46:46FromGitter<mratsim> Oh astToStr maybe
08:47:46Araqmratsim I remember a hack with {.emit: "`nimVar`".}
08:48:06FromGitter<mratsim> Ok will try later in the day :)
08:48:16*endragor joined #nim
08:51:53FromGitter<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:49Araqno just change the implementation of --targets instead
08:55:20FromGitter<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:58couven92Araq, 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:27couven92Or 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:10Araqjust use the enum
09:46:19couven92Araq, doesn't work
09:46:22Araqif you don't need to import it, it's part of system.nim
09:47:07couven92Araq, `Error: undeclared identifier: 'CpuPlatform'`
09:48:54Araqtbh I don't remember that module's purpose
09:49:43couven92It'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:33iAmSlowhmm can i use Nim whit brackets insted whitespaces :) ?
11:01:35PMunchiAmSlow, with source code filters
11:02:18*Snircle joined #nim
11:04:24PMunchhttps://forum.nim-lang.org/t/2811
11:04:35PMunch#? 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:19iAmSlowPMunch, ty meybe will give it a go
11:11:41PMunchI think they are soft-deprecated
11:11:50PMunchAs 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:54floppydhhow are move-semantics coming up ? :3
11:53:10floppydhI'm so looking forward to them
11:55:42floppydhwasn'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:08FromGitter<krux02> floppydh: https://gist.github.com/Araq/56aca84ef62bc5b4ddd105ff93624cc0
11:59:47floppydhkrux02: thanks
12:00:01FromGitter<krux02> it's still in the concept phase
12:01:54PMunchfloppydh, bountysource?
12:05:13floppydhPMunch: right
12:05:47floppydhkrux02: is the concept phase a formal thing or do you mean in general?
12:06:57*PMunch quit (Ping timeout: 240 seconds)
12:07:55FromGitter<krux02> in Nim there is very little formal at all
12:08:02floppydhkrux02: right
12:09:08FromGitter<krux02> normally in nim things are just implemented with no official concept phase at all
12:09:17FromGitter<krux02> we just chat abut it here
12:10:00floppydhkrux02: 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:18FromGitter<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:30floppydhkrux02: that's great to hear
12:44:06*yglukhov joined #nim
12:48:15*Jesin quit (Remote host closed the connection)
12:53:07ArrrrFirst 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:50floppydhOhhhh... so far, I thought move-sems are coming pre 1.0 :(
12:55:41FromGitter<krux02> well I think gc is magic
12:56:06ArrrrI think araq said some things would be implemented soon, but others required to migrate the runtime
12:56:51ArrrrFor example, make changes in stlib
12:56:54Arrrr*stdlib
13:02:33floppydhwon't move-sems be some of a solution for nims string-performance issues?
13:02:47floppydhor am I actually interpreting this wrong?
13:06:45*iAmSlow quit (Quit: Leaving)
13:13:42FromGitter<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:33floppydhmratsim: GC-based strings are faster? - what are GC-based strings?
13:20:10Araqstrings that are allocated with Nim's GC
13:21:00floppydhI thought the issue atm is that there are too many copies due to no escape-analysis and also no explicit move-sems?
13:22:44Araqperformance is not the reason I would like to replace the existing runtime
13:23:29floppydhbut there would be benefit still no?
13:23:32floppydhbenefits*
13:23:48Araqgive me a good benchmark
13:24:57FromGitter<mratsim> Well for me the benefits would be compatibility with OpenMP. Can't allocate heap memory in an OpenMP sections.
13:24:58floppydhhave none ofc. just guessing that move-sems reduce the amount of copies?
13:26:06Araqthe compiler already moves strings
13:26:11floppydhoh
13:26:30Araqwe can detect more cases but that's orthogonal to the whole "destructors" concept
13:27:09floppydhbtw. are new move-sem destructors related to whats currently named destructors in the manual?
13:27:20Araqyes
13:27:27floppydhah okay
13:27:45AraqI suppose it's time for another live session about destructors
13:27:54floppydh! yes please :)
13:27:55Araqmore and more things are obvious how to do
13:28:50floppydhAraq: but you agree that they won't land before 2.0?
13:30:34Araqok, so here is what I think
13:31:13Araqthey are not on the "critical path" to version 1.
13:31:31Araqthey are behind a switch, currently named --newruntime
13:32:24AraqI hope to have them stable enough within months.
13:32:37Araqand I encourage people to play with them
13:33:10Araqthen eventually the existing runtime will be ported to use destructors
13:33:25Araqbut that's for version 2
13:33:34floppydhoh yay sounds good :3
13:34:05floppydhI'll totally put some time into using them
13:34:30floppydhand report bugs a monkey can find, that's about my skill-set
13:35:47Araqbtw for the toy benchmark I did
13:35:50Araqit was:
13:36:30AraqNim's GC strings < C++'s STL strings < Nim's destructor-based strings
13:36:52Araqa < b means "a is faster than b"
13:37:25Araqso much for "omg, GC is killing my performance" crowd :P
13:37:29floppydh:D
13:38:13floppydhstl strings have some neat small-string-optimizations apparently?
13:38:48Araqyes I know
13:39:06Araqmy benchmark concatened longer strings so SSO didn't help :P
13:39:11floppydh:)
13:39:34floppydhidk how those work anyway, could something like that be done in Nim as well?
13:39:56Araqyeah but it's a questionable optimization
13:39:57floppydhbut that sounds really nice
13:40:16AraqRust chose to not do SSO
13:40:20floppydhinteresting
13:41:09Araqmore critical is to get allocators right
13:41:59subsetparkWith 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:09floppydhsubsetpark: good one
13:42:46Araqthat was mean ;-)
13:45:50*sleepyqt joined #nim
13:48:22ArrrrHow much faster is GC string in comparison to destructors approach?
13:49:25FromGitter<krux02> GC strings are not generally faster than destructor based trings
13:50:56ArrrrAraq says they are actuall faster in nim. But i wouldn't mind if they are not too slow. Depends on what operations
13:51:28subsetparkI wonder about when strings are really the best choice for performance-critical code, to be honest
13:51:41FromGitter<krux02> well they are not
13:51:58subsetparkWhen you have enums for nonce values, regexes for regex stuff, templates for large-scale interpolation...
13:52:04FromGitter<krux02> but also just saying strings is also not very specific
13:52:13subsetparkEven ropes, though I know Araq doesn't find those particularly useful
13:52:20FromGitter<krux02> there are a lot of things you can do with strings and a lot of ways to do it with strings
13:52:32Araqyes, too many.
13:52:47Araqthat's why you can't really optimize them :P
13:52:55Araqor even come up with a design that doesn't suck
13:53:24FromGitter<krux02> I think a simple easy to understand design is the best
13:53:58FromGitter<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:57FromGitter<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:57FromGitter... to understand
14:09:57Araqthat's useful when I have 4GB sized strings
14:10:22Araqwhich 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:41livcdi solved my nim/nimble issue. I removed everything and cleaned up my path
14:23:59livcdusing the "default" mingw though
14:24:50livcdthanks 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:03FromGitter<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:29FromGitter<andreaferretti> +1
14:32:51FromGitter<mratsim> If memory reuse, what about fragmentation, if not when will we have a memory pool in the stdlib :p
14:33:30Arrrr+1
14:33:35*Jesin joined #nim
14:42:10Araqseriously. '+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:32Araqso what do you want to know? currently the GC allocates new seqs and frees them lazily.
14:44:47*claudiuinberlin joined #nim
14:45:22Araqfragmentation 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:57AraqNim doesn't use any kind of copying GC though (which sucks btw, copying GCs are awesome)
14:48:13Araqmemory 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:54Araqbut 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:16Araqmost 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:01FromGitter<mratsim> I see, I thought Nim's GC had some kind of caching mechanism for memory allocated/deallocated in tight loop.
15:08:01FromGitter<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:07Araqalready know it ;-)
15:10:12FromGitter<Varriount> @Araq Just read that gist on the new programming model - it looks very promising!
15:11:06FromGitter<Varriount> The one question I do have - how backwards-incompatible is it?
15:13:44Araqopinions differ on that. I can make it very compatible but the performance characterics will be quite different, I think
15:14:21Araqhardest open question is .closures
15:14:51AraqI can live with 'ref' becoming an atomic RC'ed pointer plus some cycle collector
15:15:13Araqbut .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:06vivusis nim getting a non-backwards compatible update?
15:39:18FromGitter<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:41yglukhovdom96: ping
16:15:22yglukhovdom96: could you pls merge and bump gtk again? https://github.com/nim-lang/gtk2/pull/24
16:16:35*sz0 joined #nim
16:18:27CcxWrkIs there no interface to POSIX ioctl/fcntl functions?
16:19:01CcxWrkOh, 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:43CcxWrkIs there a direct access to argv?
16:26:55*TjYoco joined #nim
16:32:35*TjYoco quit (Ping timeout: 240 seconds)
16:36:16CcxWrkThe posix module seems to lack the pts-related interfaces (posix_openpt,grantpt,unlockpt,ptsname).
16:37:34FromGitter<andreaferretti> @Araq +1 was for the request to know more about the strategy of the allocator in Nim
16:37:53FromGitter<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:28Araqandreaferretti: 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:58FromGitter<andreaferretti> uhm... not quite
17:00:08FromGitter<andreaferretti> for instance: when the GC releases memory
17:00:18FromGitter<andreaferretti> is this given back to the OS or the allocator?
17:00:39FromGitter<andreaferretti> if the second, how does the allocator deal with fragmentation?
17:00:47*Sentreen quit (Ping timeout: 248 seconds)
17:00:56FromGitter<andreaferretti> not that you have necessarily to answer immediately
17:01:09FromGitter<andreaferretti> my +1 was because I would like to understand these internals more
17:01:17FromGitter<andreaferretti> it would make for a nice blog post :-)
17:01:56Araqit's an allocator, nothing fancy in there, allocations are size based, memory is rarely returned back to the OS
17:02:12Araqit distinguishes between small and big allocations
17:02:44Araqit's thread local and so doesn't have much complexity
17:03:20Araqthe GC runs when some memory threshold is reached, that theshold is dynamically adjusted
17:03:38Araqdepending on the number/size of the live objects
17:04:13Araqroughly similar to how a seq determines its capacity
17:07:39FromGitter<andreaferretti> thank you! :-)
17:14:59*Sentreen joined #nim
17:19:13federico3CcxWrk: 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:55shashlickdom96: 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:03FromGitter<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:34FromGitter<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:45shashlickvarriount: basically how proxies are typically defined - an environment variable "http_proxy" or "https_proxy"
18:11:29shashlickI 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:36livcdyglukhov: 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:40shashlickif 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:51shashlicklooks like curl also detects http_proxy automatically, seems the code belongs in httpclient
18:24:51FromGitter<Yardanico> yes, because choosenim uses httpclient everywhere except on macos
18:33:43*sz0 quit (Quit: Connection closed for inactivity)
18:39:27shashlickyardanico: 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:27FromGitter<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:48FromGitter<brentp> anyone created or seen an interval tree for nim?
19:23:10*smt joined #nim
19:29:48FromGitter<Varriount> @brentp I think it was mentioned was or twice in the past. I don't know if anything came of it.
19:31:26FromGitter<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:32FromGitter<zacharycarter> @Araq - is karax ever going to / does it support multiple page apps with routing etc
19:49:05Araqif you tell me what that takes :-)
19:49:51*SenasOzys quit (Ping timeout: 248 seconds)
19:50:50FromGitter<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:12yglukhovdom96: you around?
20:18:35arecaceaeI'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:02arecaceae"from ... import foo" doesn't seem to be enough
20:21:21arecaceaeah "except" for import, got it
20:28:40FromGitter<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:26FromGitter<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:47FromGitter<Yardanico> currentSourcePath
20:29:50FromGitter<jamesalbert> ty
20:30:02FromGitter<Yardanico> currentSourcePath() returns current path of the current file
20:30:15*couven92 joined #nim
20:30:22FromGitter<Yardanico> https://nim-lang.org/docs/system.html#currentSourcePath.t,
20:31:17FromGitter<jamesalbert> exactly what I needed thanks
20:32:33federico3any place in the compiler repo to put integration tests?
20:34:18*Sentreen quit (Ping timeout: 246 seconds)
20:40:27dom96yglukhov: I am now
20:40:45yglukhovhey, how are you
20:40:59dom96good, just got back from Liverpool :)
20:41:27yglukhovso there's another nim breakage in gtk that needs a version bump =)
20:41:35yglukhovalso wanted to get back to nimble problem
20:41:40yglukhovabsolute imports
20:42:38federico3dom96: hey, would you mind a directory for integration tests in the Nim repo?
20:42:41dom96yglukhov: I'll just add you as a collaborator to gtk2 :)
20:42:51yglukhovsounds good
20:42:54dom96federico3: That's a question for Araq
20:43:10dom96yglukhov: I'll create and zip up a repro code sample
20:43:25dom96but maybe not tonight
20:43:33yglukhovdom96: maybe just push it to some branch
20:43:46yglukhovwe shall merge it when the issue is solved
20:43:48yglukhov=)
20:43:52dom96Your PR?
20:44:04yglukhovany branch you like
20:44:12dom96What would be the purpose of that? :)
20:44:39yglukhovso there would remain a test suite for that
20:45:18yglukhovafter the issue is solved. hopefully you dont object that absolute imports should work as well as relatives
20:45:21yglukhov=)
20:46:02dom96It's already in a branch though (your branch)
20:46:21dom96I still don't understand what putting it in another branch would achieve
20:46:41yglukhovnono. i mean, you could write a test that my pr doesn't pass
20:46:51yglukhovthe test that reproduces your problem
20:47:17yglukhovdoes that make sense?
20:47:25dom96oh, my test. Maybe, I'll have to see (it's a Nim issue if anything)
20:47:54*Sentreen joined #nim
20:48:12yglukhovyeah, have you seen my comment? regardign the --nobabelpath?
20:48:12Araqdon't we already have that? tests/untestable ?
20:48:41federico3Araq: thanks
20:51:14*sz0 joined #nim
20:51:48dom96yglukhov: 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:00yglukhovdom96: errr... how is nim related here? i thought i was fixing nimble problem. =)
20:54:03dom96The point is that your fix encourages problems when using that workflow
20:55:26yglukhovman i totally misunderstood that one %)
20:55:59yglukhovbut in such case. isn't it a nim bug then?
20:56:51yglukhovand nimble should work correctly no matter which bugs it exposes? because those are still bugs? =)
20:57:12dom96Perhaps, but I want Araq's opinion on this then
20:57:24dom96(I predict there is a chance he won't consider it a bug)
20:58:31yglukhovok, i'm intrigued =)
21:00:53Araqwhat's wrong with Nim?
21:01:20dom96https://github.com/nim-lang/nimble/pull/401
21:01:28yglukhovAraq: https://github.com/nim-lang/nimble/pull/400
21:02:59AraqI implemented import $package fwiw
21:03:30*vlad1777d quit (Ping timeout: 258 seconds)
21:03:37Araqit does the right thing (for me anyway), no messing with --path
21:04:07dom96any docs that explain it?
21:04:44AraqI need to write them but I fear a shit storm
21:05:00Araq:D
21:06:53yglukhoverr? why not just use package name?
21:07:42Araqand 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:23dom96I can't use it if I don't know what it does...
21:09:17Araqit works better if you don't know what it does :P
21:09:59Araqugh this is so lame, why am I watching this?
21:10:08yglukhovAraq: i can't "try" it.
21:10:31yglukhovplease read my first comment on https://github.com/nim-lang/nimble/pull/401
21:12:06Araqyou know, fuck this shit, I'll only watch the last episode instead
21:12:44Araqyglukhov, yeah ok, well
21:12:50Araqdon't use absolute imports
21:12:58Araqand if you did, fix your code
21:13:30Araqit's not like you have a choice anyway, sooner or later you gonna switch computers, right?
21:14:24yglukhovim not sure what you're talking about.
21:14:35Araqme neither
21:15:17yglukhovfriday evening?
21:15:27yglukhovok, talk to you later =)
21:16:53dom96But indeed, that is what I suggested
21:17:20dom96Don't use 'import pkgName/module' but 'import module' instead.
21:17:27dom96For modules that are inside the `pkgName` directory
21:21:52yglukhovi 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:08yglukhovanyways 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:05Calinouimport * from *
22:03:05Calinou:P
22:03:59Araqyglukhov, afaik they are supported but there is little motivation in spending work on "supporting obviously bad" things
22:08:00GitDisc<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:36GitDisc<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:28ipjkIs this as intended, 2/inf = 0.0?
23:25:36Araqipjk, sounds like IEEE floating point semantics
23:25:51Araqdivide by inf to get zero, what's wrong with that?
23:26:46ipjkinf/2 = inf, am I just confused here?
23:27:07Araqyes, inf/2 == inf, what else?
23:27:22ipjkSeems as I am just being stupid then.
23:27:30*xkapastel joined #nim
23:27:41Araqhalf of infinity is still infinity
23:28:06ipjkOh, that's a good point.
23:28:09*ketralni` joined #nim
23:28:11federico3half of infinity is infi
23:28:12ipjkThanks
23:28:57*ketralnis quit (Ping timeout: 240 seconds)
23:30:57*lastjedi quit (Ping timeout: 260 seconds)