00:02:52 | * | redlegion quit (Client Quit) |
00:03:54 | * | rbrt quit (Quit: Oíche mhaith) |
00:04:02 | * | zetashift joined #nim |
00:04:03 | * | redlegion joined #nim |
00:04:03 | * | redlegion quit (Changing host) |
00:04:03 | * | redlegion joined #nim |
00:04:07 | * | zetashift left #nim ("Leaving") |
00:04:13 | * | redlegion quit (Client Quit) |
00:04:59 | FromGitter | <Varriount> zetashift: Well, even though it's all crypto-stuff, if the logic has already been implemented in C, it's just a matter of translating it. |
00:06:39 | FromGitter | <mratsim> Stuff don’t die on Arch wiki :P |
00:07:30 | FromGitter | <Varriount> @mratsim That's because the wiki is prominant on the official arch website. |
00:08:17 | FromGitter | <zetashift> @Varriount , yea seems they are translating Python code and wrapping C code |
00:09:17 | FromGitter | <zetashift> I'm meh at Python and really bad at C. If I was fluent in Python I'd apply |
00:09:56 | FromGitter | <Varriount> I'm fluent in Python, but have a job and school. |
00:09:56 | FromGitter | <zetashift> Which shouldn't take long but I don't really like it |
00:09:58 | FromGitter | <zetashift> learning Python after Nim seems so wasteful lol |
00:10:15 | FromGitter | <Varriount> It's frustrating though, because this could be a really big opportunity for Nim. |
00:12:07 | FromGitter | <zetashift> I like how they are promising to contribute some stuff back |
00:13:20 | FromGitter | <Varriount> I'd be willing to contribute on a part-time basis (say, 5-10 hours a week) but I don't have any time other than that. |
00:13:40 | FromGitter | <zetashift> saw some messages today here that said the same thing |
00:15:51 | * | redlegion joined #nim |
00:15:51 | * | redlegion quit (Changing host) |
00:15:51 | * | redlegion joined #nim |
00:16:35 | * | redlegion quit (Client Quit) |
00:16:48 | * | jjido quit (Remote host closed the connection) |
00:32:08 | * | redlegion joined #nim |
00:32:08 | * | redlegion quit (Changing host) |
00:32:08 | * | redlegion joined #nim |
00:40:05 | * | shashlick quit (Remote host closed the connection) |
00:41:19 | * | redlegion quit (Quit: Peace, bitches) |
00:43:04 | * | elrood quit (Quit: Leaving) |
00:43:14 | * | redlegion joined #nim |
00:43:14 | * | redlegion quit (Changing host) |
00:43:14 | * | redlegion joined #nim |
00:47:33 | * | Jipok[m] joined #nim |
00:56:02 | * | libman joined #nim |
00:58:38 | * | MrAxilus[m] joined #nim |
00:58:38 | * | Miguelngel[m] joined #nim |
00:58:38 | * | unclechu joined #nim |
00:58:38 | * | Demos[m] joined #nim |
00:58:38 | * | ehmry joined #nim |
00:58:39 | * | dyce[m] joined #nim |
00:58:39 | * | watzon joined #nim |
00:58:45 | * | macsek1911[m] joined #nim |
00:58:45 | * | georgeg[m] joined #nim |
00:58:45 | * | planetis[m] joined #nim |
00:58:45 | * | notdekka[m] joined #nim |
00:58:45 | * | TheManiac joined #nim |
00:58:45 | * | byteflame joined #nim |
00:58:45 | * | jivank[m] joined #nim |
00:58:46 | * | shashlick joined #nim |
00:58:47 | * | hohlerde joined #nim |
01:01:48 | * | rbrt joined #nim |
01:13:18 | * | vivus joined #nim |
01:32:11 | * | rbrt quit (Quit: Oíche mhaith) |
01:33:14 | * | rbrt joined #nim |
01:45:44 | * | rbrt quit (Quit: Oíche mhaith) |
01:53:50 | * | rbrt joined #nim |
01:57:56 | * | xmonader joined #nim |
02:01:51 | * | yglukhov joined #nim |
02:06:23 | * | yglukhov quit (Ping timeout: 248 seconds) |
02:09:06 | * | rbrt quit (Quit: Oíche mhaith) |
03:00:41 | * | xmonader quit (Ping timeout: 260 seconds) |
03:00:57 | * | chemist69 quit (Ping timeout: 250 seconds) |
03:08:46 | * | vlad1777d quit (Ping timeout: 264 seconds) |
03:10:43 | * | endragor joined #nim |
03:11:04 | * | endragor quit (Remote host closed the connection) |
03:11:31 | * | endragor joined #nim |
03:14:40 | * | chemist69 joined #nim |
03:15:53 | * | vivus quit (Quit: Leaving) |
03:24:33 | * | dddddd quit (Remote host closed the connection) |
03:27:50 | * | dexterk joined #nim |
03:37:44 | * | marenz__ joined #nim |
03:41:31 | * | marenz_ quit (Ping timeout: 260 seconds) |
03:51:53 | * | skrylar joined #nim |
03:55:07 | * | libman quit (Quit: Connection closed for inactivity) |
04:20:45 | * | noonien quit (Quit: Connection closed for inactivity) |
04:27:24 | skrylar | what's everyone favorite way to store a lot of floats? just binary dump them? |
04:27:29 | skrylar | that's what gltf does |
04:54:37 | skrylar | dom96, why does the streams module use getPosition and setPosition instead of `position=` |
04:57:41 | skrylar | it also looks like there isn't a method to just ask if the stream is seekable. boo. |
05:53:41 | * | marenz__ quit (Ping timeout: 240 seconds) |
05:54:16 | * | marenz__ joined #nim |
05:56:38 | skrylar | ok. i wrote a helper to write these: http://nothings.org/computer/sbox/sbox.html |
06:07:34 | * | JappleAck joined #nim |
06:18:01 | * | marenz__ quit (Ping timeout: 268 seconds) |
06:36:50 | * | BitPuffin|osx joined #nim |
06:39:25 | * | nsf joined #nim |
06:41:31 | * | SenasOzys quit (Remote host closed the connection) |
07:05:33 | * | jjido joined #nim |
07:08:15 | * | avsej quit (Ping timeout: 246 seconds) |
07:08:37 | * | ehmry quit (Ping timeout: 246 seconds) |
07:08:58 | * | Demos[m] quit (Ping timeout: 246 seconds) |
07:11:32 | * | avsej joined #nim |
07:11:32 | * | avsej quit (Changing host) |
07:11:32 | * | avsej joined #nim |
07:14:51 | * | MrAxilus[m] quit (Ping timeout: 255 seconds) |
07:14:52 | * | unclechu quit (Ping timeout: 240 seconds) |
07:15:05 | * | hohlerde quit (Ping timeout: 276 seconds) |
07:15:08 | * | georgeg[m] quit (Ping timeout: 240 seconds) |
07:15:12 | * | notdekka[m] quit (Ping timeout: 240 seconds) |
07:15:12 | * | TheManiac quit (Ping timeout: 240 seconds) |
07:15:18 | * | planetis[m] quit (Ping timeout: 255 seconds) |
07:15:18 | * | Jipok[m] quit (Ping timeout: 255 seconds) |
07:15:18 | * | dyce[m] quit (Ping timeout: 255 seconds) |
07:15:22 | * | macsek1911[m] quit (Ping timeout: 264 seconds) |
07:15:23 | * | byteflame quit (Ping timeout: 252 seconds) |
07:15:23 | * | jivank[m] quit (Ping timeout: 252 seconds) |
07:15:23 | * | Miguelngel[m] quit (Ping timeout: 255 seconds) |
07:15:29 | * | watzon quit (Ping timeout: 255 seconds) |
07:15:37 | * | shashlick quit (Ping timeout: 248 seconds) |
07:17:57 | * | SunDwarf quit (Ping timeout: 260 seconds) |
07:18:44 | * | sz0 joined #nim |
07:19:25 | * | SunDwarf joined #nim |
07:42:31 | * | xmonader joined #nim |
07:44:39 | * | JappleAck quit (Quit: Leaving) |
07:50:57 | * | jjido quit (Remote host closed the connection) |
07:55:59 | * | jjido joined #nim |
07:59:22 | * | SenasOzys joined #nim |
08:09:06 | * | PMunch joined #nim |
08:15:06 | * | dddddd joined #nim |
08:16:41 | def- | @zetashift what's outdated about my howistart post? just the nimble instructions? PRs go here: https://github.com/howistart/howistart/blob/master/nim/1/index.md |
08:18:50 | def- | (I'll go through and fix it up a bit) |
08:22:04 | * | claudiuinberlin joined #nim |
08:26:10 | * | jjido quit (Remote host closed the connection) |
08:40:55 | FromGitter | <stisa> def- You might want to mention choosenim https://github.com/dom96/choosenim too |
08:44:41 | PMunch | Yeah, choosenim is great! |
09:00:45 | Araq | so ... either jester or asynchttpclient is leaking memory. and quite severly |
09:00:46 | * | yglukhov joined #nim |
09:02:40 | PMunch | Hmm, that's not good |
09:02:40 | Araq | it appears jester simply "caches" every request, anybody familiar with it? |
09:04:19 | PMunch | What do you it caches every request? Does it keep them in memory indefinitely? |
09:07:20 | Araq | i think so, yeah |
09:08:45 | Araq | at least the memory fragmentation problems are a thing of the past :P |
09:11:46 | PMunch | Haha, always look on the bright side |
09:12:56 | * | xkapastel quit (Quit: Connection closed for inactivity) |
09:16:19 | * | Vladar joined #nim |
09:19:11 | * | Jipok[m] joined #nim |
09:19:39 | PMunch | Araq, I heard some talk about the result variable being stored directly in the position of the return value in the callers stack frame. Was this just a possible optimization or is that actually done in Nim today? |
09:20:04 | * | sz0 quit (Quit: Connection closed for inactivity) |
09:21:44 | Araq | PMunch, that is done in today's Nim. |
09:22:03 | Araq | Nim does it, and C might do it as well |
09:23:28 | PMunch | Oh cool |
09:23:51 | PMunch | Wait, C does it as well? As a compiler optimization? |
09:24:24 | FromGitter | <codenoid> hi is nim stable for web development ? |
09:29:12 | PMunch | Well the Nim website and forum is written in Nim |
09:29:48 | * | dyce[m] joined #nim |
09:29:48 | * | Miguelngel[m] joined #nim |
09:29:48 | * | ehmry joined #nim |
09:29:49 | * | unclechu joined #nim |
09:29:49 | * | Demos[m] joined #nim |
09:29:49 | * | watzon joined #nim |
09:29:55 | * | shashlick joined #nim |
09:29:55 | * | MrAxilus[m] joined #nim |
09:29:55 | * | planetis[m] joined #nim |
09:29:55 | * | TheManiac joined #nim |
09:29:55 | * | jivank[m] joined #nim |
09:29:56 | * | hohlerde joined #nim |
09:29:56 | * | macsek1911[m] joined #nim |
09:29:56 | * | notdekka[m] joined #nim |
09:29:56 | * | byteflame joined #nim |
09:29:56 | * | georgeg[m] joined #nim |
09:29:57 | gangstacat | about https://github.com/nim-lang/Nim/pull/3270 I would like to have the choice of the minimal level or error I want in order to get the automatic flushing as an argument to newFileLogger, would it be considered alright? |
09:30:26 | gangstacat | of* |
09:32:13 | gangstacat | so not only for error and fatal messages, but for the level we want and could pass as an argument to the procedure |
09:33:19 | Araq | gangstacat, seems reasonable |
09:34:29 | gangstacat | alright I will see what I can do, thank you Araq :) |
09:42:15 | * | claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com) |
09:52:44 | * | Arrrr joined #nim |
09:52:44 | * | Arrrr quit (Changing host) |
09:52:44 | * | Arrrr joined #nim |
09:55:41 | * | claudiuinberlin joined #nim |
10:06:53 | * | d10n-work quit (Quit: Connection closed for inactivity) |
10:07:11 | * | Trustable joined #nim |
10:07:51 | * | Jesin quit (Ping timeout: 240 seconds) |
10:28:47 | * | Arrrr quit (Ping timeout: 248 seconds) |
10:35:41 | * | Arrrr joined #nim |
10:35:41 | * | Arrrr quit (Changing host) |
10:35:41 | * | Arrrr joined #nim |
10:39:57 | * | Arrrr quit (Ping timeout: 240 seconds) |
10:46:42 | * | Arrrr joined #nim |
10:46:42 | * | Arrrr quit (Changing host) |
10:46:42 | * | Arrrr joined #nim |
10:50:57 | * | Arrrr quit (Ping timeout: 240 seconds) |
10:55:41 | * | Sembei quit (Quit: WeeChat 2.1-dev) |
11:04:35 | * | xmonader1 joined #nim |
11:05:41 | * | xmonader1 quit (Client Quit) |
11:07:18 | * | xmonader quit (Ping timeout: 246 seconds) |
11:08:17 | * | dddddd quit (Remote host closed the connection) |
11:09:55 | * | Arrrr joined #nim |
11:09:55 | * | Arrrr quit (Changing host) |
11:09:55 | * | Arrrr joined #nim |
11:25:32 | skrylar | mratsim: i don't know what format gets used for storing some of these models, but i wrote an sbox writer module. tomorrow will look at the readers |
11:25:42 | skrylar | it's not quite hdf but its generic and simple |
11:26:08 | FromGitter | <mratsim> Which models? |
11:26:19 | skrylar | neural nets, fuzzy trees, etc |
11:27:08 | FromGitter | <mratsim> Caffe uses protobuff, PyTorch uses pickle serialization (json?), Tensorflow uses HDF5. |
11:27:12 | skrylar | sbox is really simple (http://nothings.org/computer/sbox/sbox.html) so it seems easy enough to do more or less what gltf does and have binary blobs for some things and text blobs for others |
11:27:24 | skrylar | tensorflow also uses protobuf (for some things) |
11:27:51 | skrylar | i would *prefer* msgpack instead of json, but meh. |
11:28:57 | FromGitter | <alehander42> is there a nim msgpack impl btw ? |
11:29:06 | FromGitter | <mratsim> I'm leaning toward msgpack as well. |
11:29:09 | skrylar | there is one in nimble. i haven't vetted it for quality |
11:29:14 | FromGitter | <alehander42> I want to switch from json to my own binary packed format and I wondered if I should use msgpack insted |
11:29:19 | FromGitter | <mratsim> @alehander42 https://github.com/mratsim/Arraymancer/issues/163 |
11:29:45 | skrylar | well my beef with json is that it's still inherently a human format, and it's not good at that either |
11:30:13 | skrylar | it's not actually "better" than xml, it's just tied to the eval() function in javascript. so you still need toml or hjson or yaml for human editing |
11:30:33 | FromGitter | <mratsim> Well XML is an inhuman format and not good ;). YAML is also probably not ideal to store floats. |
11:30:45 | skrylar | although as old as xml is, why haven't we had a defacto gui editor for it? mind boggles |
11:30:50 | skrylar | commercial ones exist |
11:31:19 | FromGitter | <alehander42> I think people are just not used to structured editing, even most lisp-ers dont have a special tree editor(except paredit) |
11:31:24 | FromGitter | <mratsim> Excel :P though Excel XML schema is sometimes strange and you can't deal with big XML. |
11:32:04 | * | sz0 joined #nim |
11:32:20 | skrylar | protobuf is nice. apache had something like that in incubator once, well like blender's DNA format |
11:33:01 | FromGitter | <mratsim> Now between Msgpack, bson and protobuf I wonder which ones is the best on deserialization speed and space saving for floats. |
11:33:27 | skrylar | blender's dna format (and sort of the apache one now dead i think) basically stores the schema once at the head, and the rest is flat data, so you can compare the schema to your oown and that guides the old-version-to-new |
11:33:36 | FromGitter | <alehander42> can one tweak protobuf/msgpack for certain objects? e.g. I have several flags that I want to put as bits in the end of a byte etc |
11:33:37 | FromGitter | <mratsim> I've seen benchmarks that favor one or the other and no conclusion in sight. |
11:33:56 | skrylar | it also saves bytes because you just know the layout and don't waste space with constant "i am a bool, my value is true, i am a blah, now heres my value" |
11:34:12 | skrylar | alehandler42: no msgpack is just binary json |
11:34:36 | PMunch | I personally prefer JSON to XML simply because parsers seems to be much more intuitive in JSON. After all it's a simple object notation so your regular operators can traverse the entire tree. |
11:34:45 | skrylar | json technically compresses better (gzip) than msgpack, but msgpack has better naive size because it packs things |
11:34:49 | PMunch | XML parsers are 9/10 times a pain to use IMO |
11:35:02 | skrylar | protobuf is smaller in either case because the schemas are agreed upon ahead of time instead of constantly re-tagged iirc |
11:35:18 | PMunch | What's the difference between bson and msgpack? |
11:35:56 | skrylar | more expressive |
11:36:35 | skrylar | i've written both (msgpack in rust, bson in nim) and bson was just built to deal with mongo's needs (ex. it has special object id types) whereas msgpack is meant to store json for machine reading |
11:36:44 | FromGitter | <alehander42> schema in the beginning of a format is indeed extremely important for memory optimization, in my case I'll have to maintain millions of "elements" so specifying "in all of them this flag is 11th bit, this length is 4rd byte" is very useful |
11:37:11 | skrylar | in this particular case i just need to store neural nets and stuff |
11:37:19 | skrylar | "this is the layout and there are the weights" |
11:37:35 | skrylar | so probably json inside sbox, because json is blessed by the stdlib |
11:37:41 | skrylar | or xml, dunno |
11:38:20 | skrylar | i don't find xml parsers to be that much more of a pain than json. both are either DOM or SAX and both require a lot of boilerplate to actually bother with |
11:38:50 | PMunch | skrylar, JSON in Nim is pretty good :) |
11:40:13 | skrylar | hdf is also a largeish library. sbox is just a directory listing |
11:40:20 | FromGitter | <mratsim> @skrylar or you can use something similar to bcolz / zarr (BLOSC compression for Numpy array). |
11:40:41 | skrylar | mratsim: i don't know anything about those kinds of things :\ |
11:40:43 | skrylar | never used numpy |
11:41:16 | FromGitter | <mratsim> https://github.com/Blosc/bcolz/blob/master/README.rst |
11:41:54 | skrylar | https://github.com/Blosc/c-blosc looks quite sizeable |
11:42:04 | FromGitter | <mratsim> Blosc is a compressor for Numpy-like arrays. |
11:42:46 | FromGitter | <mratsim> Data can be compressed in memory or on-disk. (And used from disk as well). |
11:42:53 | skrylar | the +1 with sbox is that its a directory format with a header/tail, so you just chuck binary blobs in there. |
11:43:08 | PMunch | alehander42, I'm considering to add writing to my binary parser |
11:43:50 | skrylar | mratsim: i suspect we might have differing goals in some ways :) |
11:43:56 | FromGitter | <mratsim> Some examples here: to deal with 70GB 3d images --> 7GB in bcolz https://andre-ratsimbazafy.com/data-science-bowl-2017-space-time-tricks/ |
11:44:02 | FromGitter | <alehander42> I actually implemented such a macro @PMunch |
11:44:06 | FromGitter | <alehander42> I'll PR it |
11:44:09 | PMunch | Oh you did? |
11:44:11 | PMunch | Cool! |
11:44:12 | FromGitter | <alehander42> it's still very early |
11:44:22 | FromGitter | <alehander42> but at least we can discuss if it's in the right direction |
11:44:44 | FromGitter | <mratsim> @skrylar bcolz/zarr are saved as a directory of chunk-sized files. |
11:45:13 | PMunch | Yeah, looking forward to look at it :) |
11:45:35 | * | Ven`` joined #nim |
11:47:23 | skrylar | have a few things i might poke around with using deepish nets, but honestly these feel like wastes of time |
11:47:54 | skrylar | like the deep voice paper went through hell and high water to get a real-time neural vocoder, which in the end was not better than an HTM system |
11:48:55 | skrylar | *HMM |
11:49:06 | skrylar | i'll still take a look at blosc though |
11:49:30 | * | arnetheduck joined #nim |
11:50:17 | skrylar | nifty. zstd has a pre-calculated dictionary option |
11:50:38 | skrylar | i know rad game tools basically took something like lz4 and bolted one of those on, and sells it as an sdk |
11:52:20 | skrylar | may have to look in to the horrors of multithreading with nim now |
11:54:05 | skrylar | 'cause crunching random decision forests looks like a lot of binary search and testing. lol |
11:54:41 | FromGitter | <mratsim> Interesting, there is a rewrite of c-blosc: https://github.com/Blosc/c-blosc2 with lz4, Zstd, etc backends and it’s used in Spark according to the readme for “Resilient Distributed Database" |
11:55:38 | skrylar | lz4 is nice. zstd looks interesting. |
11:55:52 | skrylar | i also found one called "heatshrink" which has a rather meh ratio, but its absolutely tiny |
11:58:10 | skrylar | still need to look in to this one i found in a springer book; it's a symbol system, but it seems to be one that learns from example, and i think symbol systems might make more sense but who knows |
12:00:41 | skrylar | the deep nets seem to fail at reasoning of any kind, and the changes which result in ex. DQN or neural turing machines, appears to be just re-introducing state cells or programming tapes in a really roundabout way, such that they are re-creating ancient symbolic machines but now they require datacenters of compute instead of just like, doing little bayesian updates or something |
12:00:51 | skrylar | but then again i didn't go to an ivy league so what do i know about ai :x |
12:03:50 | PMunch | Huh, heat shrink looks pretty interesting |
12:09:41 | FromGitter | <mratsim> Well I’m a mechanical/industrial engineer so what do I know about programming and AI heh :D |
12:11:24 | flyx | mratsim: why is YAML not good to store floats? compared to JSON, it supports +/- infinity and NaN |
12:13:15 | FromGitter | <mratsim> Storing a 30 to 400MBs graph of tensors (arrays of floats) would probably have too much metadata overhead in any “readable” format. |
12:13:56 | flyx | that may be. |
12:14:15 | * | flyx did not read all the conversation and just got highlighted by mention of yaml |
12:18:53 | * | Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
12:20:13 | PMunch | JSON floats aren't technically bounded, so +/- inf "isn't needed" |
12:36:47 | flyx | well yeah, if you do not care about IEEE 754 compliance |
12:37:26 | flyx | but since it is not an *exact* representation anyway, most code is fine with it |
12:38:29 | flyx | problem is, what do you do if you serialize an object with -/+ inf or NaN in it? |
12:38:34 | PMunch | Exactly, if you were to implement some other float type you aren't forced to reparsing IEEE coded floats |
12:40:01 | flyx | I mean, JSON is a serialisation format, it should be able to serialise the complete range of native values. it is not able to serialise inf or NaN properly. |
12:40:01 | * | Arrrr quit (Read error: Connection reset by peer) |
12:40:16 | PMunch | value: "Inf" |
12:40:25 | PMunch | Ugly but it works |
12:40:29 | flyx | that's a string. |
12:40:36 | PMunch | Yeah, JSON isn't schema based |
12:40:56 | flyx | yeah, workarounds obviously exist |
12:41:29 | flyx | if you reload that in your favorite scripting language, you'd have a string in the place where a float used to be |
12:41:30 | PMunch | Reader checks if it is a string or number, if number -> convert to internal float representation (or int if applicable), if string -> check for keywords or throw error |
12:41:58 | PMunch | I mean JSON doesn't even distinguish between int and float, it's just "number" |
12:42:30 | PMunch | So you should already have some checks in place if you plan on parsing arbitrary JSON |
12:42:37 | * | endragor quit (Remote host closed the connection) |
12:43:07 | PMunch | Or you could create a "schema" you validate against and convert into some domain specific format |
12:43:43 | flyx | yeah, that usually happens when you deserialise to a defined type |
12:45:44 | Araq | scons platform=osx |
12:45:44 | Araq | File "/usr/local/bin/scons", line 26 |
12:45:44 | Araq | from __future__ import print_function |
12:45:44 | Araq | SyntaxError: future feature print_function is not defined |
12:45:55 | Araq | any clues? stupid Python based software |
12:46:54 | FromGitter | <alehander42> what version of python ? |
12:49:22 | * | endragor joined #nim |
12:49:24 | PMunch | Yeah that looks like a Python 2/3 issue |
12:50:24 | FromGitter | <alehander42> py2.6 doesnt have print_function |
12:50:32 | Araq | why do I use 'brew' if it cannot detect Python problems |
12:51:35 | PMunch | Well, for some godforsaken reason Python people like to just say "python script" and it's up to the platform what "python" would mean |
12:51:50 | Araq | the package manager needs to detect this, if I want a system that is fragile beyond repair, I know where to find Linux |
12:51:59 | PMunch | On my home machine python is Python 3, on my work machine python in Python 2 |
12:54:04 | FromGitter | <mratsim> Python 2 needs to die … It’s been 10 years ... |
12:54:40 | FromGitter | <alehander42> django2 dropped support for python2, it's kiiiinda happening |
12:55:17 | FromGitter | <mratsim> Not even talking about the mess each upgrade brings (3.5 to 3.6 via home-brew? oops you need to reinstall everything, hope you remember that obscure `$(brew --cellar)/python3/3.5.2_3/bin/python3 -m pip freeze` command |
12:55:26 | euantor | maybe by the time Python 4 is released, Python 2 will die |
12:55:44 | FromGitter | <mratsim> Numpy stops supporting Py2 in Dec 2018 |
12:56:29 | FromGitter | <mratsim> hopefully academia stops basing everything on Py2 as well by this time. |
12:57:33 | FromGitter | <alehander42> I can't believe ruby is the only mainstrean dynamic language that didn't fuck up a major version |
12:57:58 | FromGitter | <alehander42> perl 6, python2/3, php5->7 |
12:59:29 | PMunch | Yeah I still have programs that I do uninstall/reinstall on whenever perl updates on my machine as it's easier than trying to figure out how to fix it |
12:59:47 | PMunch | And my server was down for a day or two after I accidentally updated PHP.. |
13:00:36 | FromGitter | <mratsim> Do you consider Javascript dynamic? |
13:00:47 | Araq | the problem is the interpreted nature, it's fragile, compile to binaries with as few deps as possible. why would my python installation affect my python programs, it makes no sense |
13:01:19 | FromGitter | <mratsim> Na, it’s Windows DLL hell 4.0 |
13:01:22 | PMunch | The Javascript guys are really careful when changing stuff, everything breaks someones code :P |
13:02:23 | Araq | what's that Windows DLL hell? never had it, you put your deps next to .exe. problem solved. |
13:02:35 | Araq | that works since Win 95. |
13:02:52 | PMunch | I wrote a program in Python once, ended up with a couple kilobytes of actual script code. And then some 30MB to bundle a portable Python install with GTK and PyGTK bundled in.. |
13:03:23 | Araq | PMunch, that's sad but still much better than to share the freaking dependencies |
13:03:40 | FromGitter | <alehander42> yep I forgot JS, but people use lang->compiled to js more and more |
13:04:51 | FromGitter | <alehander42> well at least in linux in *some cases* you can distribute script programs without the whole VM as in windows |
13:05:07 | FromGitter | <alehander42> I can't imagine working in a os without package manager |
13:05:29 | Araq | you can use a package manager on Windows too, it's just not required and works well without one |
13:05:31 | FromGitter | <alehander42> (and a 3rd party one as choco doesn't cut it) |
13:05:45 | Araq | choco works as bad as anything else, nothing lost |
13:06:04 | FromGitter | <alehander42> meh when I have to install software on windows, I directly start drinking |
13:07:05 | FromGitter | <alehander42> at least their terminals seem to be improving |
13:08:48 | Araq | my Python is 2.4.4, how do I update it? |
13:10:39 | euantor | you can use PowerShell on Linux and MacOS now too |
13:12:36 | PMunch | Araq, sharing deps are the best. But it has to be done properly |
13:13:09 | Araq | PMunch: it is actually an intractable problem and cannot be done "properly" |
13:14:20 | PMunch | Of course it can be done properly, not sure if anyone is doing it properly yet though |
13:14:35 | PMunch | I mean most package managers have some kind of flaw, but I'd rather have one than not |
13:15:11 | Araq | it's the versioning problem. foo works with bar 1.0, 1.1, 1.2 and with baz 1.0, 1.1, 1.2. now test that Foo continues to work. you need to test 9 different combinations. |
13:15:17 | PMunch | Plus it's not like you have to install from the manager, you could simply install stuff elsewhere |
13:16:36 | PMunch | Araq, of course that is an issue |
13:17:33 | PMunch | Hmm, it would be interesting to have a package manager where compatability issues are reported and the deps are updated based on that. |
13:19:40 | Araq | there is a reason why nobody ever got package management to work without problems. it's unsolvable. |
13:19:51 | Araq | a little math shows why. |
13:24:01 | Araq | I fixed it by patching my PATH manually. |
13:25:06 | * | jjido joined #nim |
13:26:16 | flyx | well the problem goes away if you pin the exact version of every dependency. or at least the minor version to get security updates. |
13:28:07 | flyx | I don't think that the problem is inherent to package management. nothing about package management dictates to support multiple versions of dependencies |
13:30:05 | PMunch | Well, the benefit is that let's say I only have an older version and you have a newer version. The program we want to install doesn't use any of the features that have been touched by the updates. So it would be compatibly with both, why should one of us be told that we can't install it? |
13:31:09 | PMunch | The problem, as Araq stated is that people don't want to test their programs on all kinds of configurations. This is especially true of open source stuff and small projects. |
13:31:31 | Araq | flyx: for me pinning is the same as copying |
13:31:39 | flyx | why would differing versions tell one of us that we can't install it? |
13:31:40 | PMunch | So they just say, eh it works on my version, I'll say > v* |
13:31:51 | PMunch | And then something comes along and breaks it |
13:32:09 | flyx | the fault is to insinst on having only one version of some dependency on the system |
13:32:10 | Araq | PMunch: they don't want to, yes. but they also cannot. it's a combinatorial explosion. |
13:32:14 | PMunch | flyx, a differing version of a dep, with a program that has specified only one dep |
13:32:54 | PMunch | flyx, well that solves part of the problem. But can drastically reduce sharing of libs |
13:34:12 | PMunch | Proper semantic versioning would help, patch number only fixes bugs, minor might make changes but is backwards compatible, major breaks compatibility. |
13:34:28 | flyx | yes. I think that the solution is to admit that we cannot share all dependencies. the package manager can still do sharing when possible. the space reduction is of course less than complete sharing, but most problem go away |
13:35:17 | PMunch | If everything was tagged like that you would be able to share patch across all. Some might require a larger minor, but it wouldn't break those with lower minors, and only major versions would need to be installed as separate versions. |
13:36:02 | PMunch | That's why I said it would be interesting to have it based on distributed consensus and not predifined |
13:36:20 | * | Trustable quit (Remote host closed the connection) |
13:36:48 | Araq | sharing is only an OS level problem, you can share Pages in memory that are identical and read-only |
13:37:28 | Araq | if minor changes result in minor binary differences (and they often do), you can still share tons of things at runtime |
13:37:42 | PMunch | That's true |
13:38:03 | PMunch | Didn't Apple work on a filesystem for something similar? |
13:38:21 | flyx | it's already rolled out. |
13:38:27 | Araq | Microsoft server can do file deduplication, I'm sure others can do it too |
13:38:29 | PMunch | Intended to do backups by backing up only the blocks that differed between files and not the entire file |
13:38:38 | PMunch | flyx, oh nice |
13:39:32 | * | yglukhov quit (Remote host closed the connection) |
13:39:35 | Araq | the only benefit of sharing is that security updates "propagate" properly through the system |
13:40:38 | jjido | and waste of disk / RAM? |
13:41:40 | * | marenz__ joined #nim |
13:42:45 | Araq | jjido: well this discussion suffers from overloaded terminology. you can easily share common pages/sections on disk and in RAM without any kind of fragile package management process |
13:43:16 | jjido | Araq: is that a widely available technology? |
13:43:38 | Araq | for Disks it's called "deduplication" and widely available. |
13:44:02 | PMunch | Isn't that horrible for spinning rust disks? |
13:44:47 | Araq | for RAM I don't know, but could be invented and would have been much simpler than 40 different fucking package managers |
13:45:18 | jjido | Deduplication in Windows works on a block basis I believe. It will not work if the copy is shifted even one byte. On Mac OS X it only works for file copies so no "similar-looking" deduplication. |
13:45:41 | Araq | yes, block basis, so? |
13:46:21 | Araq | have function in binary stopped being aligned? |
13:46:29 | Araq | *functions |
13:48:23 | jjido | well it is useful for exact copies. My point was about small differences that cause insertion or deletion in the binary. |
13:51:26 | * | yglukhov joined #nim |
13:54:01 | Araq | all you need to do is to ensure small differences don't bubble up, have some gaps in the binary and it would be fine |
13:54:55 | Araq | not that it's so important, most RAM is wasted on multi-media, not for instructions |
13:58:45 | Araq | https://en.wikipedia.org/wiki/Kernel_same-page_merging |
14:00:00 | * | skrylar quit (Remote host closed the connection) |
14:01:50 | * | yglukhov quit (Remote host closed the connection) |
14:03:22 | * | Ven`` joined #nim |
14:18:22 | def- | @zetashift since you asked a few days ago, new blog post is up (but as I said not nim related) |
14:18:34 | Araq | booh! :-) |
14:19:36 | * | yglukhov joined #nim |
14:20:25 | FromGitter | <ephja> what |
14:20:42 | FromGitter | <ephja> what's the point then ;) |
14:21:19 | * | laas joined #nim |
14:22:09 | FromGitter | <zetashift> @def-, that's impressive working on such a codebase. I get why you wouldn't have time with Nim |
14:22:52 | * | yglukhov_ joined #nim |
14:23:45 | * | yglukhov quit (Read error: Connection reset by peer) |
14:24:33 | FromGitter | <ephja> why "son" instead of "child" for tree structures? because it's shorter? how about "dad" instead of "father" then ;) |
14:25:21 | Araq | ephja: shorter. 'dad' is a nice idea, I will consider it |
14:27:40 | crem | opposite of a 'dad' should be 'kid'. |
14:28:06 | crem | But in my code, I do use 'kid' instead of 'child'. Still use "parent" though. |
14:29:26 | * | endragor quit (Remote host closed the connection) |
14:30:54 | Araq | believe it or not, when I wrote that code 'kid' was not part of vocabulary |
14:31:01 | Araq | *of my |
14:31:58 | * | endragor joined #nim |
14:32:27 | FromGitter | <ephja> btw, I've got used to your short names, but sometimes I've wanted to use longer names for the calling side. templates are a little verbose for that but it works |
14:34:24 | crem | btw in Russian in that context (data structures), only "daughter" is used, and only as adjective, not noun. (e.g. "daughter nodes", not just "daughers"). |
14:34:59 | FromGitter | <ephja> sometimes it's obvious to the caller what some single letter parameter is for, though |
14:36:54 | * | endragor quit (Ping timeout: 268 seconds) |
14:40:52 | * | Sembei joined #nim |
14:46:58 | * | nsf quit (Quit: WeeChat 1.9.1) |
14:53:08 | * | Trustable joined #nim |
15:01:36 | * | endragor joined #nim |
15:06:00 | * | endragor quit (Ping timeout: 246 seconds) |
15:12:17 | * | Jesin joined #nim |
15:31:35 | FromGitter | <mratsim> @Araq you will be taking huuuuuuuggee risks by using gendered trees: https://github.com/joyent/libuv/pull/1015 |
15:32:51 | euantor | yep, was going to say it wouldn't be long before there were complaints from that kind of user |
15:33:22 | * | rokups joined #nim |
15:33:50 | * | Sembei quit (Quit: WeeChat 2.1-dev) |
15:34:25 | PMunch | Just counter it by saying that the tree nodes identify as male |
15:35:56 | * | Sembei joined #nim |
15:36:32 | Araq | they are male but they are also all homosexual, so it's fine |
15:36:44 | Araq | and some of them are even black. |
15:37:18 | PMunch | Hahaha |
15:37:34 | FromGitter | <mratsim> And others red. |
15:37:53 | FromGitter | <mratsim> But they are all called Judy? |
15:38:17 | FromGitter | <mratsim> (red black trees, Judy Arrays ;) ) |
15:39:42 | jjido | What is the "B" in B-trees? |
15:40:04 | jjido | bastard trees |
15:40:27 | FromGitter | <RedBeard0531> Is there a nimscript repl? |
15:40:38 | FromGitter | <alehander42> tree algo-s and genders always remind me of this immortal bug: https://www.reddit.com/r/programming/comments/2tn1ah/a_bug_in_family_tree_software_traced_to_inbreeding/ |
15:41:40 | FromGitter | <ephja> and what about green people? |
15:42:46 | FromGitter | <alehander42> I guess `nim secret` is basically a nimscript repl? |
15:42:58 | Araq | yep |
15:43:28 | FromGitter | <konqoro> building nim devel fails for me: https://gist.github.com/konqoro/19af81696e9fb5fc017218059fde91b0 |
15:46:06 | FromGitter | <RedBeard0531> @alehander42 @araq oh hot damn! |
15:47:08 | FromGitter | <mratsim> Someday politics might kill opensource: https://github.com/django/django/pull/2692 |
15:48:26 | FromGitter | <ephja> not sure if srs |
15:50:33 | * | Vladar quit (Quit: Leaving) |
15:51:19 | FromGitter | <mratsim> @alehander42 reminds me of this: https://stackoverflow.com/questions/6163683/cycles-in-family-tree-software |
15:51:28 | FromGitter | <alehander42> it's exactly this haha |
15:51:59 | * | elrood joined #nim |
15:52:16 | FromGitter | <mratsim> Ah right, couldn't find the link on mobile. |
15:52:46 | FromGitter | <alehander42> it's actually a great showcase of how many bugs come from seemingly obvious assumptions |
15:53:39 | FromGitter | <mratsim> Aka leap second/year bugs |
15:53:42 | FromGitter | <alehander42> btw Mamy, what do you think of the last alphazero chess thing |
15:55:01 | FromGitter | <mratsim> Well after go I would expect chess as it was a low hanging fruit, but it's crazy how much stronger than a custom tuned engine it is. |
15:56:39 | FromGitter | <mratsim> The main grip I have is that I don't know how fast are Google TPUs, is that equivalent to 50 GPUs, 200 GPUs, ... Makes it very hard to reproduce and understand if 4 hours of training is awesome or if Google just used as much electricity as Iceland in a whole year. |
15:57:48 | FromGitter | <mratsim> Now I'm eagerly waiting for Starcraft AI :P, I'll try to build a Starcraft not in Nim as well. |
15:58:00 | * | d10n-work joined #nim |
15:59:56 | FromGitter | <alehander42> exactly :D but I think the amazing part is that despite how much hardware it uses, it analyzes 3 magnitudes less positions and still wins |
16:00:35 | dom96 | not in Nim? D: |
16:00:38 | FromGitter | <alehander42> at least a friend who is a great chess player insists its style is more humanlike and that it already broke one famous defense and invented an opening |
16:00:44 | FromGitter | <mratsim> Bot not not. |
16:00:58 | dom96 | ahh :) |
16:03:29 | FromGitter | <RedBeard0531> Is there any difference between the 3 ways to return a value from a function: https://play.nim-lang.org/?gist=f30fad59824756a2c7ec1baf4424ffbf ? Is one form generally considered better/faster/more idiomatic? (Assuming the return type is something expensive like a seq[string] rather than bool) |
16:03:45 | * | PMunch quit (Quit: Leaving) |
16:04:50 | Araq | there are all equally efficient. 'result = x' is most commonly used in my code fwiw |
16:05:23 | crem | They all return equal code? |
16:05:32 | crem | *generate |
16:05:37 | Araq | 'return x' combines control flow with the setting of the return value and so it's slightly discouraged |
16:06:04 | Araq | 'x' on its own is newer Nim and has the disadvantage of messier error reports |
16:06:31 | crem | So, 'x' is encouraged more? I'm not accustomed to it. |
16:07:19 | crem | I think in Perl it was also possible to write it like that, but still I used return. |
16:08:10 | * | Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
16:09:13 | FromGitter | <mratsim> Doesn't only `result = x` and `x` build values without temporaries or does return do that too? |
16:09:40 | Araq | they are the same performance wise iirc. if not, file a bug |
16:11:40 | FromGitter | <alehander42> so is `x` preffered for functions with control flow ? |
16:12:47 | Araq | 'result = x' is preferred by me. |
16:15:48 | planetis[m] | how about making contructors. Does result = Foo(x: x) build a temporary variable whereas result.x = x not? |
16:16:04 | planetis[m] | * isn't |
16:19:20 | Araq | constructors often produce suboptimal code, yeah. not that hard to fix it though. |
16:22:02 | * | Ven`` joined #nim |
16:26:35 | FromGitter | <cabhishek> Hi everyone! I am trying to find a way to calculate the time it takes for multiple async http requests to complete. I have a sample code here https://gist.github.com/cabhishek/cc20ea8b422f7506256af15a49dfe165. Any advice/pointer ? (I tried setting callback on the future but that doesn't seem to be getting called) |
16:28:15 | * | miran joined #nim |
16:33:06 | planetis[m] | call the bench template on waitFor ? |
16:34:16 | FromGitter | <ephja> don't you need to call 'poll'? |
16:35:32 | FromGitter | <ephja> in a loop, which is what runForever does |
16:35:51 | FromGitter | <ephja> nevermind |
16:37:07 | FromGitter | <ephja> I always read code wrong |
16:37:11 | FromGitter | <ephja> ok that's a long stack trace |
16:38:41 | FromGitter | <cabhishek> is bench template part of std lib? I couldn't find docs |
16:39:48 | planetis[m] | there is nimbench in nimble |
16:39:59 | planetis[m] | (a package) |
16:40:00 | FromGitter | <ephja> you don't get "no such host is known"? |
16:40:02 | FromGitter | <ephja> oh I see |
16:40:09 | planetis[m] | or the one in stackoverflow |
16:40:30 | FromGitter | <ephja> you're probably not using windows. this is what you get if you are: http://jsonplaceholder.typicode.com\albums |
16:46:00 | * | nsf joined #nim |
16:47:38 | FromGitter | <RedBeard0531> @cabhishek all() currently replaces the callback on the passed in Future, so it will never be called. See https://github.com/nim-lang/Nim/issues/6849. I have a PR to fix this specific case: https://github.com/nim-lang/Nim/pull/6850 |
16:49:14 | FromGitter | <ephja> https://gist.github.com/ephja/6329d72e867537b770da6651dafb462f ? |
16:50:16 | * | Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
16:53:08 | FromGitter | <cabhishek> @ephja I think that should work! And I tried something similar yesterday but didnt seem to be working |
16:57:37 | FromGitter | <Varriount> dom96: The post on that Nim etherium |
16:57:56 | FromGitter | <Varriount> says that they're accepting part time applications |
17:01:24 | * | noonien joined #nim |
17:04:05 | * | BitPuffin|osx quit (Ping timeout: 255 seconds) |
17:04:23 | * | claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com) |
17:06:36 | * | Jesin quit (Remote host closed the connection) |
17:07:26 | * | rbrt joined #nim |
17:12:53 | FromGitter | <ephja> @cabhishek seems to work :p |
17:14:25 | FromGitter | <cabhishek> @ephja yes, thanks |
17:15:09 | FromGitter | <ephja> yay |
17:16:20 | * | dddddd joined #nim |
17:17:43 | FromGitter | <ephja> the wgl interface is outdated so I'm messing with the xml spec files again. thinking of generating var parameters for non-const pointers. I just need to handle nil inputs somehow |
17:28:22 | * | jjido quit (Quit: Leaving) |
17:32:32 | FromGitter | <ephja> I might have a decent solution for that |
17:48:47 | Demos[m] | well if the pointer can be nill (which is frequently in wgl afaik) then don't use var |
17:49:16 | Demos[m] | but if you know it can't then just put the var, since it's the same datatype as a pointer |
17:49:46 | Demos[m] | like |
17:49:47 | Demos[m] | proc foo(x: var int) {.importc.} |
17:50:08 | Demos[m] | is |
17:50:09 | Demos[m] | extern void foo(int* x) |
17:50:10 | Demos[m] | in C |
17:50:54 | Demos[m] | cxx may be more trouble but even so refs are pointer sized as well (idk if that's standard, but it's true on all the machines one might care about) |
17:51:14 | Demos[m] | and importc does not validate the parameters |
17:51:27 | Demos[m] | so just the symbol name |
17:51:34 | Demos[m] | (which sorta means it validates the params for cxx) |
17:51:38 | Demos[m] | but alas |
17:56:06 | * | claudiuinberlin joined #nim |
17:58:35 | * | kunev quit (Ping timeout: 240 seconds) |
18:00:20 | FromGitter | <zetashift> if I have a seq what does the [^i] do? |
18:02:30 | FromGitter | <zetashift> Is it like the pin operator in Elixir? |
18:02:57 | dom96 | i-th element from the end |
18:06:32 | FromGitter | <zetashift> ah thanks |
18:11:20 | * | rbrt quit (Quit: Oíche mhaith) |
18:11:59 | * | laas quit (Quit: WeeChat 2.0) |
18:12:08 | * | rbrt joined #nim |
18:14:09 | * | kunev joined #nim |
18:22:19 | * | rbrt quit (Quit: Oíche mhaith) |
18:22:58 | * | jjido joined #nim |
18:24:14 | FromGitter | <ephja> Demos[m]: you could have two variations, but it's too complicated |
18:24:55 | * | yglukhov_ quit (Remote host closed the connection) |
18:27:23 | * | rbrt joined #nim |
18:27:47 | FromGitter | <ephja> the specs just don't contain enough information |
18:29:19 | * | yglukhov joined #nim |
18:31:02 | * | yglukhov_ joined #nim |
18:31:03 | * | yglukhov quit (Read error: Connection reset by peer) |
18:34:26 | * | rbrt quit (Quit: Oíche mhaith) |
18:35:33 | * | yglukhov_ quit (Ping timeout: 268 seconds) |
18:36:57 | * | jjido quit (Ping timeout: 240 seconds) |
18:37:10 | * | arnetheduck quit (Remote host closed the connection) |
18:38:05 | * | yglukhov joined #nim |
18:40:18 | * | rbrt joined #nim |
18:40:45 | * | elrood quit (Remote host closed the connection) |
18:42:39 | * | yglukhov quit (Ping timeout: 248 seconds) |
18:45:31 | * | rbrt quit (Quit: Oíche mhaith) |
18:47:54 | * | rbrt joined #nim |
18:55:15 | * | Yardanico joined #nim |
18:55:24 | Yardanico | Hi IRC :P |
18:55:38 | Araq | hey, Yardanico |
18:55:57 | Yardanico | I didn't boot into Linux for ~2 months |
18:56:04 | Yardanico | guess it's time for an update |
18:59:41 | miran | hey Yardanico, long time no see |
19:01:14 | Yardanico | miran, hi |
19:02:00 | miran | what's up? |
19:02:41 | miran | have you received your hacktoberfest t-shirt, btw? |
19:03:19 | Yardanico | miran, sadly no |
19:03:28 | Yardanico | (not yet I hope) |
19:03:43 | miran | me neither, don't know what's going on, should have been here already |
19:03:43 | Yardanico | Maybe it takes more time for them to deliver it to russia |
19:04:00 | miran | ...and croatia |
19:04:22 | Yardanico | some info - https://twitter.com/MagickNET/status/938888081444429824 |
19:06:04 | miran | thanks for the info. if this is the case for our shirts, i'll be quite disapointed |
19:06:47 | Yardanico | well let's hope we'll get it until new year :P |
19:07:58 | miran | they shouldn't have promised delivery in 4-6 weeks. when they have sent me that mail, they must have known the number of people who had won the tshirt |
19:10:36 | FromGitter | <zetashift> Guess a lot of people will contribute if they get free shirts? |
19:10:42 | * | yglukhov joined #nim |
19:11:09 | Yardanico | zetashift: there was a lot of "fake" repositories |
19:11:36 | Yardanico | example: https://github.com/AliceWonderland/hacktoberfest |
19:12:23 | dom96 | miran: I haven't received mine either and I'm in the UK |
19:12:26 | dom96 | It just takes them a while |
19:12:29 | miran | well, that stuff should have been checked before sending an email where they confirm that you have won tshirt. and where they said what the expected delivery would be |
19:12:42 | * | Yardanico quit (Remote host closed the connection) |
19:12:57 | * | rokups quit (Quit: Connection closed for inactivity) |
19:13:26 | miran | well, i guess no tshirt then before new year.... :( |
19:13:50 | * | Yardanico joined #nim |
19:15:05 | * | yglukhov quit (Ping timeout: 250 seconds) |
19:15:41 | * | rbrt quit (Quit: Oíche mhaith) |
19:18:56 | FromGitter | <mratsim> Is this real? https://github.com/AliceWonderland/hacktoberfest/blob/master/scripts/HelloWorldPickachu.pika |
19:19:27 | Yardanico | well why not? |
19:20:04 | FromGitter | <zacharycarter> http://trove42.com/pikachu-programming-language/ |
19:20:08 | Yardanico | http://trove42.com/pikachu-syntax-rules/ |
19:21:32 | * | Vladar joined #nim |
19:23:50 | FromGitter | <ephja> is it production ready? |
19:31:22 | * | rbrt joined #nim |
19:31:45 | * | Yardanico quit (Remote host closed the connection) |
19:32:41 | * | Yardanico joined #nim |
19:34:32 | * | rbrt quit (Client Quit) |
19:36:42 | * | SenasOzys quit (Read error: Connection reset by peer) |
19:36:56 | * | SenasOzys joined #nim |
19:42:10 | * | rbrt joined #nim |
19:43:30 | Yardanico | wow, new servers |
19:44:45 | miran | before we go down, is there a way to unpack a seq? |
19:44:58 | * | rbrt quit (Client Quit) |
19:45:15 | Yardanico | miran, no, only by writing (guess what?) a macro or maybe template (not sure about that one) |
19:45:30 | miran | currently i have multiple rows with `a = seq[0]; b = seq[1]; etc.` |
19:46:20 | miran | heh, macros.... i guess i should learn them because that seem to be an answer to 50% of my questions :) |
19:46:33 | * | rbrt joined #nim |
19:50:45 | * | rbrt quit (Client Quit) |
19:53:32 | * | rbrt joined #nim |
19:54:06 | * | Yardanico quit (Remote host closed the connection) |
19:55:00 | * | xkapastel joined #nim |
19:55:04 | * | Yardanico joined #nim |
19:57:05 | * | Jesin joined #nim |
19:57:16 | * | rbrt quit (Client Quit) |
19:57:23 | * | yglukhov joined #nim |
20:01:17 | * | Trustable quit (Remote host closed the connection) |
20:02:58 | * | Yardanico quit (Remote host closed the connection) |
20:04:50 | * | jjido joined #nim |
20:08:11 | * | rbrt joined #nim |
20:24:40 | * | rbrt quit (Quit: Oíche mhaith) |
20:29:29 | * | sz0 quit (Quit: Connection closed for inactivity) |
20:37:48 | * | Vladar quit (Quit: Leaving) |
20:39:50 | FromGitter | <alehander42> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5a2af8963ae2aa6b3fa3340c] |
20:40:02 | FromGitter | <alehander42> @miran this is an example macro |
20:40:16 | FromGitter | <alehander42> you can replace yourname with a suitable label |
20:41:53 | FromGitter | <alehander42> I admit that doesn't work for now for `a, b, c = e` |
20:41:58 | FromGitter | <alehander42> but not much time now |
20:44:47 | FromGitter | <RedBeard0531> @miran @alh |
20:46:10 | FromGitter | <alehander42> actually I didn't do it, assuming that sometimes one might want to get only first two elements |
20:46:35 | FromGitter | <alehander42> (I know you can do `a, b = c[0..1]` but I am not sure if that's optimal?) |
20:46:56 | FromGitter | <alehander42> but yeah probably it would be better to check it |
20:47:47 | FromGitter | <RedBeard0531> You could steal python's `a,b, *` to handle that case. That also makes it possible to only get the last two, although that would make the macro more complicated |
20:49:26 | FromGitter | <alehander42> it would be hard to use |
20:49:33 | FromGitter | <alehander42> exactly this syntax in a macro |
20:49:33 | FromGitter | <RedBeard0531> But I think if destructuring seqs became a thing, it would be best to assert the lens match by default, matching behavior for tuples |
20:50:01 | FromGitter | <alehander42> var a, b, _* = e |
20:50:03 | FromGitter | <alehander42> can work tho |
20:50:21 | FromGitter | <alehander42> yep, it would make more sense |
20:53:00 | FromGitter | <alehander42> I might post an improved version tomorrow with wildcards and stuff |
21:03:47 | * | miran_ joined #nim |
21:04:01 | * | miran quit (Ping timeout: 240 seconds) |
21:15:09 | * | miran_ quit (Quit: Konversation terminated!) |
21:19:43 | * | rbrt joined #nim |
21:22:38 | * | yglukhov quit (Read error: Connection reset by peer) |
21:23:13 | * | yglukhov joined #nim |
21:26:49 | * | vivus joined #nim |
21:31:39 | * | solitude joined #nim |
21:35:10 | * | rbrt quit (Quit: Oíche mhaith) |
21:37:11 | * | dexterk quit (Ping timeout: 260 seconds) |
21:37:35 | * | dexterk joined #nim |
21:43:11 | * | vlad1777d joined #nim |
21:50:23 | * | PMunch joined #nim |
21:51:18 | * | Jesin quit (Quit: Leaving) |
21:52:30 | * | solitude quit (Quit: WeeChat 2.0) |
21:52:44 | * | solitudesf joined #nim |
21:54:12 | * | solitudesf quit (Client Quit) |
21:54:29 | * | solitudesf joined #nim |
21:56:54 | * | kunev quit (Ping timeout: 246 seconds) |
22:03:02 | * | solitudesf quit (Quit: WeeChat 2.0) |
22:03:18 | * | solitudesf joined #nim |
22:09:26 | * | xet7 quit (Ping timeout: 255 seconds) |
22:09:48 | * | madpat joined #nim |
22:10:26 | * | claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com) |
22:19:32 | * | yglukhov quit (Read error: Connection reset by peer) |
22:20:04 | * | yglukhov joined #nim |
22:20:27 | * | rbrt joined #nim |
22:24:12 | * | xet7 joined #nim |
22:25:19 | * | xet7 quit (Remote host closed the connection) |
22:30:52 | * | xet7 joined #nim |
22:32:08 | * | endragor joined #nim |
22:36:27 | * | solitudesf quit (Ping timeout: 240 seconds) |
22:36:40 | * | endragor quit (Ping timeout: 268 seconds) |
22:36:59 | yglukhov | offtop: whos got the best irc setup? i've got limechat. cons: no history when im offline. pros - easy to use. |
22:39:17 | dom96 | XChat Azure + ZNC. Pros: I'm used to it. Cons: XChat crashes every time my laptop returns from hibernation. |
22:43:58 | * | SenasOzys quit (Remote host closed the connection) |
22:44:49 | * | SenasOzys joined #nim |
22:44:59 | PMunch | Haha dom96 |
22:45:34 | pydsigner | I'm rolling ZNC + irssi and AndChat |
22:45:50 | PMunch | I've got HexChat: cons: same as yglukhov (but that's more about IRC, plus #nim is logged so it's not that big of an issue), pros: came preinstalled with Manjaro and never had any issues with it |
22:46:16 | FromGitter | <RedBeard0531> @dom96 can you take a look at https://github.com/nim-lang/Nim/pull/6850 |
22:47:06 | dom96 | RedBeard0531: Tests are failing, maybe rebasing will help? |
22:52:18 | FromGitter | <RedBeard0531> sure, I'll try that soon. I took a quick look when I posted and the failures seemed unrelated to my change, but I didn't spend a ton of time staring at the output. |
22:54:26 | jjido | yglukhov: I was just compiling Textual |
22:56:42 | yglukhov | jjido: compiling? is it opensource? |
22:57:11 | jjido | yglukhov: yes. Get it from github |
22:57:23 | dom96 | Fun fact: I started my quest for a new programming language because I wanted to write an IRC client in a compiled language |
22:58:33 | AlexMax | dom96: me too |
22:58:46 | AlexMax | i wasn't necessarily looking for a new language |
22:58:58 | yglukhov | jjido: cool, will do. thanks! |
22:58:59 | AlexMax | but dang, trying to write a GUI IRC client in C++ and wxwidgets is no fun |
22:59:03 | dom96 | This was my attempt when I was still using Python: https://github.com/dom96/nyx |
22:59:06 | dom96 | The code is horrible :) |
22:59:54 | * | jjido quit () |
23:02:17 | FromGitter | <zetashift> Hexchat same as problems |
23:02:54 | dom96 | I actually got pretty far: https://a.fsdn.com/con/app/proj/nyxirc/screenshots/239688.jpg/1 |
23:03:18 | GitDisc | <treeform> Is this IRC written in nim? |
23:03:32 | dom96 | It's sad that I still haven't seen a nicer Linux DE theme than the one in that screenshot (which is at least 10 years old) |
23:03:47 | dom96 | treeform: no, something i've written a long time ago in Python |
23:03:56 | FromGitter | <zetashift> Arc? |
23:04:01 | FromGitter | <zetashift> I like Arc alot |
23:04:06 | GitDisc | <treeform> cool |
23:04:19 | * | jjido joined #nim |
23:04:42 | * | jjido is now known as Guest22165 |
23:05:52 | * | Guest22165 quit (Client Quit) |
23:10:12 | * | jjido_ joined #nim |
23:11:03 | jjido_ | mmh, not sure it is configured right. |
23:13:09 | jjido_ | Using Textual |
23:14:02 | * | jjido_ quit (Client Quit) |
23:25:43 | * | PMunch quit (Quit: leaving) |
23:35:17 | * | rauss quit (Ping timeout: 276 seconds) |
23:38:17 | FromGitter | <RedBeard0531> @dom96 https://github.com/nim-lang/Nim/pull/6850 is now green |
23:39:19 | dom96 | oh great, this is my pet peeve but could you change from the do notation back to using 'proc'? |
23:40:39 | FromGitter | <RedBeard0531> You couldn't have said that before I rebased an reran the tests? :) |
23:41:25 | FromGitter | <RedBeard0531> I actually find it cleaner with do, but its your code. I'll change it back later tonight. |
23:44:48 | dom96 | well I can change it too |
23:45:06 | dom96 | but yeah, sorry, I forgot. |
23:53:11 | * | yglukhov quit (Remote host closed the connection) |