<< 27-12-2014 >>

00:00:28Araqskyfex: make a PR. I don't plan to deprecate the gtk2 wrapper
00:00:39*Mimbus quit (Remote host closed the connection)
00:00:40*flaviu quit (Remote host closed the connection)
00:00:40dom96onionhammer: try now
00:01:03Araqwe need the commit messages .... :-(
00:01:08skyfexYeah, you never know.. I think the Linux workstations at work supports Gtk2.. they use *ancient* versions of Red Hat >_<
00:01:14skyfex*Gtk3 i mean
00:01:34dom96Araq: Don't worry. It will happen soon.
00:02:33Araqskyfex: gkt3 is like python 3. has no reason for its existance, version 2 was good enough and 3 doesn't change too much for it to justify its existance
00:02:41onionhammerdom96 i think its fixed
00:02:46onionhammeri'll check my other app
00:03:48Araqdom96: great work! I would have searched in a completely different direction
00:04:11dom96Araq: thank you :)
00:04:28onionhammerso what was the issue?
00:04:30onionhammerresult = result?
00:04:34dom96yeah lol
00:04:39onionhammeroops ;)
00:04:44dom96indeed
00:04:48*flaviu joined #nim
00:06:18Araqthe compiler doesn't complain about that?
00:06:30Araqcause it should, make a feature request PR
00:06:39dom96You mean issue?
00:07:07Araqwe do the data flow analysis anyway
00:07:22Araqwell calling this "data flow analysis" is a stretch
00:07:31dom96yeah. It doesn;t.
00:07:34dom96Not even a warning.
00:07:34Araqyes, create an issue
00:07:58*Trustable quit (Quit: Leaving)
00:08:02onionhammerdom96 okay great, my stuff is back up and running
00:08:04onionhammerthanks
00:08:08Araqit should error, can't see why it should only be a warning
00:08:13dom96Sure.
00:08:18dom96onionhammer: np
00:12:13Araqdom96: does Nimble still use .nimble on windows?
00:12:28Araqor did you change it to "nimble" without the dot?
00:13:35*z1y joined #nim
00:16:13dom96it still uses .nimble
00:16:26Araqmeh ok
00:17:50skyfexHm, how did the T/P thing and case sensitivity thing end up?
00:18:18Araqwe removed them and picked a compromise
00:18:41Araqthe compromise is that the first letter is sensitive so Foo and foo are distinct.
00:19:42AraqAnd it's a good compromise since it seems to have pissed off both camps equally ;-)
00:20:40skyfexHah, well, I like it :) It's sort of hardwired in my brain that the first letter is significant when it comes to case in programming languages, even though they're sometimes not, since most use it to signify something.. even if it's just by convention
00:21:18skyfexBut if case is different further out, it's usually insignificant and/or a mistake
00:21:52*z1y quit (Ping timeout: 240 seconds)
00:21:59AraqI like it because it continues to allow people to use under_scores and I'm allowed to not type them ;-)
00:23:08skyfexHah, yeah I'm just in a super messed up state there.. been programming so much ruby and c recently I've started using underscores.. but before that I was all about camel case
00:23:25skyfexStill prefer it actually
00:25:11AraqI think I might start to prefer _ if only the fonts weren't as radical with its position
00:25:36Araqso that it reads-more-like-this-but-without-looking-like-a-substraction
00:25:50Araqbut I don't know if that's even possible ;-)
00:27:20skyfexyeah, I think I'd like that too
00:27:52flaviuhow about decreasing the weight of the underscore so it's less visible?
00:28:57DemosM-x variable-pitch-mode in emacs to turn on flexible width font
00:29:03Demosno way to do it in vim apperently
00:29:24AraqI don't mind it's weight, I mind that it's almost on the line below
00:29:58Demoswell you can put em dashes in variables I think (U+2014)
00:29:58Araqand then_you start to play_spot the space_vs underscore
00:30:19flaviuDemos: do you mean gvim, or vim?
00:30:27Demosflaviu, both
00:30:41Demossome terminals (terminator) support flexi width font
00:31:14flaviualso, are you by any chance insane? Non-fixed-width fonts sound like a nightmare. ;)
00:31:15notfowlterminator uses opengl iirc
00:33:14Demosflaviu, not as bad as you think
00:44:56ldleworkIn my opinon that the underscore serves as a single token but parses like a space is precisely its advantage.
00:45:43ldleworkThe programmer generally doesn't need to distinguish between _ and " " because spaces are usually illegal in a place where a single name is expected
00:46:04ldleworkBut that the eye parses it as easily is a space is a signal to why underscores are better than camelCase and TitleCase
00:46:28ldlework(dashes are also good, but more semantically confusing (there is no _ operator)
00:50:50Araqsome_longish_type_t my_variable_also_long;
00:51:43Araqreads like crap to me. I want to tokenize programming code in my head.
00:52:14Araqnot confuse spaces with underscores for convenience
00:55:06*jux joined #nim
01:01:49*Sembei joined #nim
01:04:46*bjz quit (Ping timeout: 264 seconds)
01:06:44*bjz joined #nim
01:11:32*bjz quit (Ping timeout: 245 seconds)
01:16:11*bjz joined #nim
01:26:19*rpag joined #nim
01:26:34*bjz quit (Ping timeout: 250 seconds)
01:51:17*bjz joined #nim
02:23:06*starless joined #nim
02:27:44*bjz quit (Ping timeout: 245 seconds)
02:30:42*bjz joined #nim
02:39:24*z1y joined #nim
02:41:37*dyu joined #nim
02:48:34*z1y quit (Ping timeout: 245 seconds)
03:00:18*kapil__ joined #nim
03:02:12*ARCADIVS joined #nim
03:08:01*Mimbus joined #nim
03:08:12*darkf joined #nim
03:16:49ldleworkAraq: any update on type forward declarations?
03:17:02ldleworkOr rather a way to do recursive types across modules?
03:18:58*Mimbus quit (Remote host closed the connection)
03:19:05*Mimbus joined #nim
03:20:25*saml_ joined #nim
03:22:34*Mimbus quit (Read error: Connection reset by peer)
03:22:41*Mimbus joined #nim
03:26:31*milosn quit (Read error: Connection reset by peer)
03:30:52*Mimbus quit (Read error: Connection reset by peer)
03:32:44*Mimbus joined #nim
03:33:23*Mimbus quit (Remote host closed the connection)
03:33:35*Mimbus joined #nim
03:35:47*milosn joined #nim
03:42:52*quasinoxen quit (Quit: No Ping reply in 180 seconds.)
03:44:23*quasinoxen joined #nim
03:55:30*flaviu quit (Remote host closed the connection)
03:56:10*flaviu joined #nim
04:01:01*bjz quit (Ping timeout: 265 seconds)
04:17:13*z1y joined #nim
04:25:49*z1y quit (Remote host closed the connection)
04:26:13*z1y joined #nim
04:32:55*BitPuffin quit (Ping timeout: 265 seconds)
04:37:21*vendethiel quit (Ping timeout: 252 seconds)
04:38:43gmpreussnergithub down?
04:38:57rpagnope
04:39:16*vendethiel joined #nim
04:40:27gmpreussnerodd... maybe just on my route. i'm getting connection timeouts.
04:40:56gmpreussnernow it's back
04:58:33*gmpreussner quit (Quit: Konversation terminated!)
05:07:02*bjz joined #nim
05:12:34*gsingh93 joined #nim
05:21:53*vendethiel quit (Ping timeout: 255 seconds)
05:22:29*vendethiel joined #nim
05:58:44*Hakaslak joined #nim
06:08:52*Hakaslak quit (Read error: Connection reset by peer)
06:09:43*Hakaslak joined #nim
06:09:52*bjz quit (Ping timeout: 256 seconds)
06:14:35*gmpreussner joined #nim
06:15:23*vendethiel quit (Ping timeout: 265 seconds)
06:16:54*gmpreussner quit (Client Quit)
06:17:10*gmpreussner joined #nim
06:17:40*vendethiel joined #nim
06:19:57*gmpreussner quit (Client Quit)
06:20:13*gmpreussner joined #nim
06:21:19*saml_ quit (Quit: Leaving)
06:36:26*Hakaslak quit (Quit: TODO: Generate 'Computer Sleep Quit Message')
06:38:01*Hakaslak joined #nim
06:38:37*vendethiel quit (Ping timeout: 245 seconds)
06:44:20*Hakaslak quit (Read error: Connection reset by peer)
06:45:01*Hakaslak joined #nim
07:06:45ldleworkon https://gist.github.com/anonymous/d8d8622604e5a712c2b6, why am I getting foo.nim(7, 9) Error: type mismatch: got (int literal(49))
07:07:00ldleworkit doesn't like the <50
07:11:33notfowlldlework, what is <50? it isnt an iterator
07:24:48*vendethiel joined #nim
07:27:55*gour joined #nim
07:29:30*BitPuffin joined #nim
07:33:47*BitPuffin quit (Ping timeout: 244 seconds)
07:37:55*dts|pokeball quit (Ping timeout: 244 seconds)
07:38:19gmpreussnerlet
07:38:33gmpreussneroops wrong window
07:42:20*milosn quit (Read error: Connection reset by peer)
07:43:13*milosn joined #nim
07:46:01*dts|pokeball joined #nim
07:48:46*vendethiel quit (Ping timeout: 250 seconds)
07:53:48*dyu quit (Quit: Leaving)
08:04:29*gmpreussner quit (Remote host closed the connection)
08:04:52*gmpreussner joined #nim
08:05:38*milosn quit (Read error: Connection reset by peer)
08:11:11*milosn joined #nim
08:24:00*Hakaslak quit (Quit: TODO: Generate 'Computer Sleep Quit Message')
08:24:45*Hakaslak joined #nim
08:26:11gmpreussnerDemos: you around?
08:27:17gmpreussnerplease ping me when you get this thx!
08:28:46*vendethiel joined #nim
08:29:22*Hakaslak quit (Ping timeout: 264 seconds)
08:34:16Demosgmpreussner, yup
08:40:58*BlaXpirit joined #nim
08:42:37*dts|pokeball quit (Ping timeout: 240 seconds)
08:48:04*dts|pokeball joined #nim
08:48:20*gour quit (Remote host closed the connection)
08:55:22*vendethiel quit (Ping timeout: 240 seconds)
08:57:59*gour joined #nim
09:01:31*vendethiel joined #nim
09:10:51*gsingh93 quit (Quit: Connection closed for inactivity)
09:29:29*Demos quit (Ping timeout: 272 seconds)
09:30:10*gour_ joined #nim
09:34:10*gour quit (Ping timeout: 264 seconds)
09:37:18*gour_ is now known as gour
09:49:45*z1y quit (Ping timeout: 272 seconds)
09:57:59*gour quit (Remote host closed the connection)
10:00:47*gour joined #nim
10:06:07*vendethiel quit (Ping timeout: 245 seconds)
10:08:25*vendethiel joined #nim
10:39:21*vendethiel- joined #nim
10:39:49*vendethiel quit (Ping timeout: 245 seconds)
10:56:03*z1y joined #nim
10:56:37*starless quit (Quit: WeeChat 0.4.2)
10:57:32*bjz joined #nim
11:10:07*vendethiel joined #nim
11:10:39*vendethiel- quit (Ping timeout: 245 seconds)
11:11:23*yglukhov_ joined #nim
11:13:37*yglukhov_ quit (Client Quit)
11:18:58*bjz_ joined #nim
11:21:32*bjz quit (Ping timeout: 256 seconds)
11:22:10*jux quit (Ping timeout: 264 seconds)
11:31:31*kapil__ quit (Quit: Connection closed for inactivity)
11:43:37*bjz_ quit (Read error: Connection reset by peer)
11:43:45*bjz joined #nim
11:57:00*dyu joined #nim
12:01:39dv-can i somehow say a proc parameter is var without specifying its type?
12:05:14Araqdv-: I don't think so
12:07:52Araqldlework: well you haven't shown us how the syntax should look like
12:16:51*yglukhov_ joined #nim
12:22:43*kapil__ joined #nim
12:24:06dyuAraq: about that generics proc dot notation, it can't be fixed to have same behavior as the normal call syntax?
12:24:37Araqf.x[i](a)
12:24:44Araqis
12:24:53dyux[i](f,a)
12:24:57Araq((f.x)[i])(a)
12:25:20dyuhmm
12:26:34dyuAraq: ((f.x)[i]) <-- so its an array call? rather than generics
12:28:01Araqwell originally I wanted to use [. .] for generics for this reason
12:28:13Araqbut I feared the complaints :P
12:28:26dyuwell, yea .. expected
12:28:50dyucan it be checked semantically that the [i] would be a type rather than an expression/literal?
12:29:15Araqcan be done but I don't like it
12:29:48dyuok
12:30:41*BitPuffin joined #nim
12:31:36dyuthe more I get used to coding nim, the more I appreciate the language design
12:32:33Araqdyu: for non-optional type parameters you should use 'typeDesc' instead
12:32:50Araqthen you can simply use f.x(typeHere, a)
12:34:54dyuAraq: so proc f* [T](T: typedesc, a:bool) ?
12:35:00dyuerr
12:35:05dyutypedesc:T
12:35:06Araqwithout the [T]
12:35:53Araqproc f(T: typedesc, a: bool): T
12:36:09dyuoh yea
12:36:22dyulol, got confused
12:36:53ekarlso-Araq: i've started looking at a small packages.nim-lang.org program
12:42:58dyuAraq: doesn't work
12:43:15Araqdyu: it should ... can you gist it?
12:44:48dyuAraq: http://pastebin.com/8QADqyUM
12:48:51Araqdyu: told you to invoke it like so:
12:48:58Araqfbb.ca(bool, 2)
12:49:06dyuargh
12:50:38dyuAraq: Error: type mismatch: got (ptr FlatBufferBuilder, typedesc[bool], int literal(2))
12:50:45dyucommon.ca(T: typedesc, fbb: ptr FlatBufferBuilder, len: int): Array[None]
12:50:57dyu2nd line = expected
12:51:19dyufbb.ca(bool, 2) <-- with this call
12:53:58Araqwell. maybe you should take a nap and then look at the error message
12:54:25Araqit's obvious.
12:55:23Araqproc ca(fbb: ptr Flatbufferbuilder, T: typeDesc, len: int): Array[T]
12:55:49Araqif bool is the 2nd argument, the T should be the 2nd parameter. makes sense right?
12:55:56dyuyep
12:57:07dyuAraq: now changed to proc ca* (fbb: ptr FlatBufferBuilder, T: typedesc, len: int): Array[T] {.noinit.} =
12:57:14dyuError: internal error: (filename: compiler/sigmatch.nim, line: 1024)
12:58:50Araqinteresting. report it :P
12:59:08dom96ekarlso-: written in Nim?
13:01:13dyuAraq: same error even with let boolarray = ca(fbb, bool, 2) ... will open a new issue
13:16:04ekarlso-dom96: YA
13:17:00*Trustable joined #nim
13:20:55dom96ekarlso-: good.
13:21:01dom96ekarlso-: What's your plan?
13:33:40*vendethiel- joined #nim
13:34:20*vendethiel quit (Ping timeout: 258 seconds)
13:39:48*nimnoob joined #nim
13:48:43milosndom96: is there anywhere a howto on writing wrappers for C libs?
13:49:45milosnit should be easy, as much as i understand ... was reading about it previously
13:49:46milosn:)
13:55:54*loz joined #nim
13:56:24milosni wanna play around and generate a wrapper for http://orclib.sourceforge.net/
13:56:30milosnsee how far i get
13:56:55milosnsomething to do so i dont get rusty
13:57:14milosnand expand my skills
13:57:20*milosn dont wanna forget Nim
13:57:23milosn;)
13:59:42dyumilosn: eww oracle
13:59:50dyu:-)
14:00:11milosnyeah i know, "evil" oracle ... :)
14:18:50*Banjomaster joined #nim
14:29:50milosnguess ill have to find that howto on my own
14:29:57milosnyou aint very helpfull you know
14:29:58milosn:D
14:30:58flaviumilosn: http://goran.krampe.se/2014/10/16/nim-wrapping-c/
14:32:00milosnhmm cool
14:32:02milosnthanks
14:32:03milosn:)
14:32:07*ARCADIVS quit (Quit: ARCADIVS)
14:32:15*gmpreussner_ joined #nim
14:33:04*gmpreussner quit (Ping timeout: 250 seconds)
14:36:23*milosn quit (Read error: Connection reset by peer)
14:41:56*milosn joined #nim
14:42:05milosnops
14:42:22milosnchopy internet from tel-aviv
14:42:27milosn:)
14:42:35milosnit comes and goes ocasionaly
14:54:24Araqmilosn: please also provide db_oracle modelled after db_postgre on top of the low level C wrapper
14:54:51*Banjomaster quit (Ping timeout: 256 seconds)
14:55:05milosni havent started anything, there is loads of time to make it
14:55:10milosni am just investigating
14:55:24milosn:)
14:57:18Araqping zahary
15:01:05*AMorpork is now known as AFKMorpork
15:09:25lozis there any info about history of nim? even wiki has no article about nim
15:09:36*bjz_ joined #nim
15:10:41*bjz quit (Read error: Connection reset by peer)
15:11:36*darkf quit (Quit: Leaving)
15:13:29gmpreussner_loz: And god said "Let there be nim", and there was nim.
15:14:58Araqloz: wikipedia doesn't like Nim.
15:15:36lozit was always interesting for me to learn about people, companies behind a technology, their ideas and goals, their failures and successes and so on
15:15:48lozAraq: why?)
15:17:10lozand i'm still surprised i haven't heard anything about nim all these years
15:18:28EXetoCgot to have external sources apparently
15:18:47*z1y quit (Ping timeout: 244 seconds)
15:23:25*nimnoob quit (Ping timeout: 252 seconds)
15:26:24flaviuloz: best not to mention wikipedia unless you want a long rant
15:27:51lozno problems, this is just a place where i usually read some language overview
15:33:11*jefus joined #nim
15:34:56*vendethiel- quit (Quit: q+)
15:39:00ekarlso-dom96: currently mimic the packages.json format that's in use
15:39:25ekarlso-dom96: but unsure of how to do the stuff with storage
15:39:31ekarlso-store it on local disk, ref repos or ?
15:51:31*kapil__ quit (Quit: Connection closed for inactivity)
16:02:06*Banjomaster joined #nim
16:08:28ekarlso-what editor do you use for nim ?
16:09:26*AFKMorpork is now known as AMorpork
16:12:44milosnvim?
16:15:55gmpreussner_i use Kate
16:16:23milosni never could get used to emacs ... to complicated for me
16:16:28milosnvim just does it
16:16:30milosn:D
16:18:03dts|pokeballi use nano
16:18:21*dts|pokeball ducks from the hail of fire from the vi users
16:18:54*gour quit (Remote host closed the connection)
16:21:11lozemacs ftw
16:21:41*gour joined #nim
16:32:06*AMorpork is now known as AFKMorpork
16:36:12*gmpreussner__ joined #nim
16:36:17*gmpreussner_ quit (Ping timeout: 256 seconds)
16:41:52dom96loz: What might help is if you email the moderators of the computing section of wikipedia and tell them that you are annoyed that Nim is not mentioned.
16:42:06dom96if enough of us do it then it surely will work right?
16:42:52dom96ekarlso-: I think it's something we'll have to have a serious think about.
16:43:05dom96Do we want a centralised repo where people upload their packages?
16:43:09lozdom96: i'm not sure, i though language official person should write an article
16:43:18dom96or do we just want a little tracker which tracks people's packages?
16:43:35dom96loz: That's definitely not the case.
16:46:57flaviudom96: That won't be productive.
16:47:16dom96flaviu: what do you suggest then?
16:47:40flaviuTo wait until nim meets the standards of notability.
16:47:42ekarlso-what should it be then ?=
16:47:57ekarlso-just a small registry ?
16:48:20flaviuPersonal appeals don't really work against bureaucracy
16:48:44*NimBot joined #nim
16:49:04ekarlso-a'la pypi or ?
16:52:37dom96ekarlso-: I'm not sure. It's something to discuss with the rest of the community.
16:52:39EXetoCekarlso-: that seems like a good idea. just add proper authentication and set a size quota
16:52:53dom96ekarlso-: Create a thread on the forum about it.
16:53:27*Banjomaster quit (Ping timeout: 272 seconds)
16:54:47*flaviu quit (Remote host closed the connection)
16:55:02*flaviu joined #nim
16:55:21EXetoCthe registry could point to the actual repository, but the server could download the packages so as to be able to extract some metadata to be presented in the registry
17:08:46ekarlso-meh, I was thinking of something like rusts crates.io just wihtout the hosting bit
17:08:51ekarlso-or pypi
17:09:03ekarlso-where it's a index and packages are hosted externally
17:12:23*dyu quit (Quit: Leaving)
17:14:23*suvdeep joined #nim
17:14:58*suvdeep left #nim ("http://quassel-irc.org - Chat comfortably. Anywhere.")
17:15:45EXetoCekarlso-: so what I said, minus the metadata extraction?
17:17:50EXetoCwhich would incur some storage overhead, but no bandwidth overhead (well, very little)
17:32:15ekarlso-EXetoC: :)
17:34:48ekarlso-hmmm
17:35:25ekarlso-with nimble can one provide something like requirements.txt for pip in python ?
17:35:26*gour quit (Remote host closed the connection)
17:36:17*Araq_ joined #nim
17:36:20*gour joined #nim
17:37:06*Araq quit (Ping timeout: 240 seconds)
17:39:13*gour quit (Remote host closed the connection)
17:50:06ekarlso-Araq_: so when one does say import jester in nim it will import all methods?
17:50:56EXetoCall exported symbols (foo*)
17:51:15ekarlso-kk
17:51:29ekarlso-looking at jester is there a way to make the port configurable ? :/
17:53:53EXetoCekarlso-: newSettings?
17:54:07dom96var settings = newSettings(port = Port(1234))
17:54:19dom96I will make that nicer.
17:54:38ekarlso-k
17:54:41dom96But that syntax will continue to work.
18:03:39*gour joined #nim
18:18:14*nimnoob joined #nim
19:02:47*profan joined #nim
19:20:17*Araq_ is now known as araq
19:22:44*araq is now known as Araq
19:27:35lozhm, can't i compile windows binary on linux machine?
19:28:33Araqyou can cross-compile any way you want if you setup your gcc properly
19:30:47lozlooks like nim wants some windows headers
19:32:22Araqyeah. maybe you should have these when compiling for windows
19:36:54*starless joined #nim
19:43:12*starless quit (Quit: WeeChat 0.4.2)
19:48:08lozlooks like i need all windows headers
19:50:23Araqno. you need a windows machine.
19:50:33lozdamn(
19:50:59lozwhat kind of cross-compilation is this?)
19:51:22Araqhow do you think it works? you build a binary for windows, it doesn't work on some machine and then ...? how do you debug the problem?
19:52:36Araqcompiling a windows binary on a linux machine sounds completely out of touch with reality with me unless you setup some form of build server
19:53:45lozi'm sure i saw a language which could make native windows binaries on linux
19:55:01Araqyou can do it. but it's stupid.
19:57:18lozAraq: >how do you debug the problem?
19:57:18lozbut you still have a debugger, and supported binary format, no?
19:58:19Araqhow does that help you when you cannot even run the .exe on linux in the first place?
19:58:37profanmono/wine?
19:59:08Araqif you use wine already, why not use wine for compilation?
19:59:41lozno, you debug windows binary on windows..
20:00:20lozyou dont run exe on linux, you just make it and give away to windows guys)
20:02:03Araqso in other words you give them untested software. ;-)
20:02:18lozwell, you tested it on linux
20:02:53lozof course you didn't test windows-specific things
20:03:12*Araq tries to imagine a QA that accepts this procedure ...
20:03:30lozbtw i found it, red guys have some advanced cross compilation https://github.com/red/red
20:05:21*BlaXpirit-UA joined #nim
20:06:01flaviuloz: maybe you can use the wine headers?
20:06:23lozhm, i can try that
20:06:47Araqmingw also comes with them, it's not hard to find them.
20:07:48lozAraq: how did you start nim project?
20:07:55*BlaXpirit quit (Ping timeout: 255 seconds)
20:08:11Araqbut again, this works until you hit the first problem.
20:08:13*nimnoob quit (Ping timeout: 256 seconds)
20:08:50Araqand afaict 'red' abstracts from the underlying platform much more than Nim does
20:09:03Araqso it might work out for them
20:11:34Araqloz: long story short: I searched for an "acceptable" programming language and found none.
20:12:41lozdid you have a specific task? or did you search for some kind of everyday universal joyful language?
20:12:51Araqwhere "acceptable" means: static typing with a concise syntax that produces native code
20:12:56*Epic|gmpreussner joined #nim
20:12:58*gmpreussner__ quit (Ping timeout: 244 seconds)
20:13:11lozsounds like ocaml
20:14:12AraqI looked at it but didn't like it's overly functional style plus its syntax plus the fact that they had to special case 'array of float' for performance
20:15:02lozi see. do you use nim at work now?
20:15:37lozor do you have a chance to use it
20:18:13Araqyes
20:18:50lozAraq: at what kind of field?
20:19:44Araqlet's say "game like" project
20:20:26*jefus_ joined #nim
20:21:32lozand how did your colleges react on nim?
20:22:03*irrequietus joined #nim
20:24:07*jefus quit (Ping timeout: 258 seconds)
20:24:10Araqdunno. most of my former colleagues lack the vision to see what's wrong with existing mainstream languages ;-)
20:24:59lozformer?)
20:25:24lozare you the only one who uses nim at your work now?)
20:25:27*nimnoob joined #nim
20:27:16Araqno, but I changed jobs for Nim
20:27:35Araqand now enough of this. I usually don't answer personal questions at all.
20:29:07lozah, sorry, thanks for answers
20:30:19gourAraq: are you still alive and well ready for Nim release this yaer?
20:30:23gour*year
20:34:30*jefus_ is now known as jefus
20:35:18ekarlso-what the frap is the diff between proc and a method ?
20:36:36def-ekarlso-: methods use dynamic dispatch, see http://nim-lang.org/tut2.html#dynamic-dispatch
20:44:06*gour quit (Remote host closed the connection)
20:44:23ekarlso-so using methods is bad ? ^
20:45:17flaviuekarlso-: no
20:45:53flaviuIf you don't need dynamic dispatch (you're not using inheritance), then use proc
20:46:07flaviubut methods are certainly not bad. They have their place
20:49:57ekarlso-gokr: ping
20:50:06ekarlso-flaviu: what company are you with ?
20:50:35flaviuekarlso-: I'm a student at the moment.
21:02:16ldleworkWhat would be novel is if our package manager had strong identity verification built in
21:02:23ldleworkwith signing and such
21:02:31ldleworkno idea further than that, carry on
21:03:43dom96ldlework: I don't think we need to worry about that just yet.
21:04:34ldleworkdom96: I still haven't written the thing up about prelude
21:05:47dom96ldlework: There is still time.
21:07:04ekarlso-dom96: u then a student too ? :p
21:08:00dom96ekarlso-: yep
21:10:07ekarlso-Araq: how old is nimrod ?
21:10:12ekarlso-eh, nim
21:10:27*Varriount|Busy joined #nim
21:10:32Varriount|BusyMeep
21:10:46AraqVarriount|Busy: ready for release?
21:11:05Varriount|BusyAraq: Is the documentation online so I can properly test the installer?
21:11:06flaviuekarlso-: clone the git repo and check git log
21:11:23Araqekarlso-: first successful bootstrap in 2008 iirc
21:14:57*nimnoob quit (Ping timeout: 240 seconds)
21:15:52AraqVarriount|Busy: no...
21:17:41*nimnoob joined #nim
21:20:21*Varriount_ joined #nim
21:21:55*Varriount|Busy quit (Ping timeout: 246 seconds)
21:21:57*nimnoob quit (Ping timeout: 245 seconds)
21:28:16Varriount_Araq: What is the revision that will be used for the release?
21:28:34AraqVarriount_: there is no 0.10.2 commit yet
21:29:49*Varriount_ is now known as Varriount|Busy
21:33:25ldleworkcan we have pop take an index?
21:33:59Varriount|BusyAraq: So... I'm ready to prepare the release, however I need a revision to use and generated documentation to use.
21:34:16*rpag quit (Ping timeout: 250 seconds)
21:34:38Araqintegrated Nimble in the installer?
21:35:03Araqldlework: what kind of "pop" is that?
21:35:20ldleworkone that pops out the specified element
21:35:51ldleworkplease don't make the argument from the position of the metaphor of the word over whether it would be of general utility to take an element out of a sequence by index
21:35:54Varriount|BusyAraq: What revision of nimble should I use?
21:38:36AraqVarriount|Busy: dom96 released a stable version just a few days ago
21:38:48Araqshould have a git tag
21:39:20Araqldlework: meh ... is that really necessary? if so, move pop to sequtils
21:40:06ldleworkAraq: https://gist.github.com/dustinlacewell/c8d1186a935836915999
21:41:03ldleworkignore the clone
21:42:06ldleworkAraq: so you know how if pop is moved to sequtils then the whole stdlib has to be updated?
21:42:52ldleworkAraq: and you know how there is a concern that system.nim is too bloated and so on
21:42:56*nimnoob joined #nim
21:43:11AraqI recognize the words but your grammar escapes me
21:44:44*BlaXpirit-UA quit (Quit: Quit Konversation)
21:46:27ldleworkk
21:48:25Araqldlework: as I said, move pop to sequtils and add a version which takes an index
21:48:34Araqthis PR will be accepted
21:48:46ldleworkAraq: it will require updating the entire stdlib
21:49:24Araqmost of the stdlib doesn't use 'pop'
21:49:38ldleworkThat's fair, but consider this
21:50:06ldleworkWhat if we made prelude.nim the module that currently system.nim occupies
21:50:19ldleworkallowing us to refactor out all the stuff like 'pop' into other modules
21:50:31ldleworkbut have modules like sequtils and strutils always available
21:51:07ldleworkyou'd want to remove things like parseutils from prelude, but I think having /prelude/ be the core module, and having a core set of submodules which we make by default something to consider
21:51:20ldleworkhaving to import basic functionality of the language in every file is very unfriendly
21:51:48flaviuNim is targeting a lot of areas
21:52:02flaviuwhat is friendly for one area is unfriendly for another.
21:52:20ldleworkHaving methods available for basic types is unfriendly to what exactly?
21:53:32ldleworkIt would let us remove things from system nim
21:53:50ldleworkand come up with more competent 'sequtils' module, that actually includes all the stuff related to sequences in the language
21:54:43ldleworkyou'd only need just a few modules, but strutils and sequtils seem obvious
21:55:36flaviuI'm not looking to argue right now, but you should keep in mind the audiences that nim targets. I'm not necessarily saying that pop(seq[T], int) is a bad idea
21:55:50ldleworkflaviu: sure I'm just asking for you to tell me who exactly you're alluding to
21:56:18ldleworkI'm open to your reason, but do have any specific usecase for nim that would be damaged by having sequtils and strutils part of the 'core' ?
21:56:48*rpag joined #nim
21:56:54flaviuscripting languages want everything to be included by default, other kinds of languages might not.
21:57:03ldleworkI'm not saying everything.
21:57:10ldleworkthat's characterizing what I'm saying as an extreme
21:57:14flaviuThere's lots of stuff in strutils that doesn't need to be imported by default.
21:58:08flaviuI'm not trying to attack you, sorry if it came across that way. I used everything for dramatic effect.
21:58:13ldleworkI don't really see anything in strutils that doesn't smack of an operation on a basi type
21:58:33ldleworkyou have strings, and you want to be able to do things with them
21:59:02AraqtoUpper doesn't even support unicode, you have to use the unicode module for that
21:59:08ldleworkits like saying, well we should split up strutils into different modules, because when I want to have $ I don't really need all the other stuff in that module
21:59:19Araqthere are of course good reasons for this
22:00:04Araqbut I think some people will rage when the "core" toUpper is hostile to unicode
22:00:31Varriount|Busy*hiss*
22:00:48ldleworkI think its easy to explain that the core itself is 'hostile' (really?) to unicode
22:00:57ldleworkIn that you have to use the unicode module for that
22:01:39flaviucapitalize, normalize, cmpIgnoreStyle, wordWrap, addSep, abbrev, quoteIfContainsWhite, replaceWord, escape, unescape, validIdentifier,
22:02:00flaviuI'd say that most if not all of those are too specialized
22:02:11Araqnot to mention that strutils itself will be the primary target of "mimic types"
22:02:20ldleworkLet's clean up strutils!
22:02:22Araqand TR macros
22:02:37flaviuldlework: I'd have no problem with that.
22:02:39Araqand moving that to the core is not wise at all
22:02:43ldleworkor even just create a new module called "strings"
22:02:50ldleworkwhich has basic core functionality for strings
22:02:54ldleworkthat is the thing we include in the new prelude
22:03:03ldleworkand take the stuff from strutils that makes sense to be there
22:03:08ldleworkand same from system.nim
22:03:15ldleworkleave actual obscure utils to strutils
22:03:44ldleworkbut strings should be Pretty Usable by default without an import in every single file
22:03:49ldleworksame with sequences
22:04:01ldleworkI don't think we should massively expand core
22:04:13ldleworkI think we should make the basic types, basically usable by default
22:04:22ldleworkand do that without simply inflating system.nim
22:04:24Araqthey are pretty usable for me the way they are. I don't import sequtils fwiw
22:04:30ldleworkinstead make a way we can remove things from system.nim
22:04:36*loz quit (Ping timeout: 250 seconds)
22:04:43ldleworkokay, lucky you
22:04:48ldleworkI import these all over the place
22:05:03Araqwell for you we have:
22:05:07Araqinclude prelude
22:05:11ldleworkall over the place
22:05:18ldlework"import basic_language_features"
22:05:26flaviuldlework: not a big deal
22:05:30flaviusee perl, javascript
22:05:35ldleworkyes
22:05:41ldleworkaspiring to the greats
22:06:04ldleworksays the guy who doesn't think strutils and sequtils are all that important to the apparent second hand citizen
22:06:07Varriount|BusyYou know, we could split up system.nim into more implicitly imported modules.
22:06:11ldleworkhow's that for dramatic effect
22:06:20ldlework:)
22:06:29flaviuI think that the stdlib needs a complete overhaul
22:06:58flaviuI won't elaborate more on that though, I need to get work done.
22:07:29ldleworkI wonder if it could be made so that you could tell the compiler any file to use as the 'core'
22:07:42ldleworkthen people could make competing stdlibs ;{
22:08:04Araqthat worked very well for D ...
22:09:25Araqbtw that feature already exists
22:09:39Araqbut it's not well documented
22:10:19Araq --import:PATH add an automatically imported module
22:10:21Araq --include:PATH add an automatically included module
22:11:11Araqbut then you have to add this single line to the config file of every of your projects... that's 10 lines for 10 projects. pure madness! ;-)
22:11:41flaviuAraq: Fork Nim with a one line diff!
22:13:05ldleworkAraq: I was just kiddin :)
22:14:49ldleworkAraq: if you import sequtils and strutils and then don't use anything from them, does dead code elimination work over them?
22:14:53Varriount|Busyflaviu: While the stdlib may need some reviewing and revising, the unfortunate truth is that we lack the resources required for such a project.
22:15:12ldleworkVarriount|Busy: I am totally down and capable of moving stuff around
22:15:32flaviuVarriount|Busy: It'd be much easier if writing everything in Nim wasn't a core criterea
22:16:04Araqflaviu: lol. yeah the stdlib should have written in Python
22:16:11Araq*have been
22:16:17ldleworkAraq: is that a dig against Monte?
22:16:33Araqno.
22:16:51AraqI don't even know what Monte is
22:17:18ldleworkAraq: remember the language based on E that dash and simpson are writing
22:17:20flaviuAraq: You keep saying that, yet I've probably used less python than you have.
22:17:24ldleworkI invited you to talk with them for a little bit
22:17:38ldleworkAraq: no worries
22:17:58ldleworkI do think that Nim should take various queues from Python
22:18:06Araqflaviu: the build bot is now python based. I still have no 'diff' feature
22:18:20ldleworkques*
22:18:23ldleworkcues*
22:18:26ldleworkheh
22:18:38flaviuI was going to make a joke about that, but i can't spell queues
22:19:04flaviuAraq: That has nothing to do with python. I never said python was ideal.
22:19:38flaviuAll I said is that python has a lot more experience, and that having similar interfaces would not be a bad thing.
22:19:59ldleworkI want to say something about this
22:20:39ldleworkI come to Nim from a long time writing Python and I originally picked Python long ago because of the productivity it gave me
22:21:12ldleworkAnd I come to Nim having yearned for something more strongly typed to benefit from compiler technology to be even more productive
22:21:20ldleworkAnd I was told that I was supposed to like Golang
22:21:40ldleworkAnd I've said stuff about this before regarding how its unfortunate that Golang lacks this or that and in my opinon for the wrong reasons
22:21:53ldleworkBut Nim is instantly attractive because it serves the programmer in all the right places
22:21:59gokrAraq: Regarding hos useful the basic types are - with a different point of view (like say a Smalltalker's view) they are very anemic.
22:22:10ldleworkit uses 'nicest' implementation of things like generics and templates and macros and so on
22:22:16gokr(I think that's the right word)
22:22:17ldleworkit feels modern in those respects
22:22:40ldleworkthe language is very clean overall and gives you that same comfortable productivity feeling that python does
22:23:03ldleworkand all I want to put forth is that we should really strive to take the "modern excellecence" path when we can for any aspect of the project
22:23:06EXetoCthe dynamic typing bugs me
22:23:23ldleworkfrom the package manager, to the module system, to our language features, to our documentation
22:23:47ldleworkEXetoC: same here, its very nice for most things but you eventually get tired of the runtime rain dance
22:23:57ldleworkLike
22:24:09ldleworkI understand flaviu's point that some people will want to use Nim for like embedded systems and so on
22:24:20flaviuwhen did I say that?
22:24:28ldleworkflaviu: you said 'other usecases'
22:24:35ldleworkand then you constrasted against 'scripting languages'
22:24:38ldleworkso I thought of a lean usecase
22:24:44ldleworkI didn't mean to put words in your mouth
22:24:51ldleworkbut in anycase
22:24:55ldleworkdon't embedded systems programmers wants a really really nice language for doing that?
22:24:57flaviuI suppose that's another usecase, I was thinking more of bigger projects.
22:24:59EXetoCpeople say there's no silver bullet, but you can achieve so much with modern languages
22:25:13ldleworkI want to be able to teach my girlfriend Nim
22:25:21ldleworkin the same hope that I could probably get away with teaching her Python
22:25:34ldleworkbut I also want Nim to underly the important systems in the next 30 years
22:25:37ldleworkso all I'm saying is
22:26:02ldleworklets not decide on how a feature looks for feels based on anything than trying to achieve what many languages do in many things
22:26:08ldleworkbut none get all of them right
22:26:22ldlework(we wont either, but we should establish a community standard and heading)
22:26:47Araqldlework: we're stablizing (is that even a word?) the language and the stdlib for version 1.0
22:26:58ldleworkI know
22:27:14Araqthat is our priority. usually versio n 1.0 of anything is crap anyway
22:27:17ldleworkBut we have a long future and I think its perfectly pertinent timing
22:27:25ldleworkto make this call
22:27:32gokrIMHO the important thing is to make Nim "non hostile" to organic growth of libs. In other words, if someone wants to extend say string with a bunch of stuff, it should be easy for them to do so - and easy for others to use that "extension module" - even though its non standard - without things falling apart. Perhaps all is dandy on that front?
22:27:53ldleworkI'm thinking more like
22:27:59ldleworkthink of a programming convention fair
22:28:03ldleworkand people are walking by
22:28:41ldleworkI'm talking about how Nim doesn't have glaring clunkyness that has been solved in the past by previous languages
22:28:50ldleworkWhen you sit down at the Go booth you're "Ooh this is nice"
22:29:07ldleworkbut it takes like 5 minutes to find the glaring idosyncacies built into Golang
22:29:29*nimnoob quit (Ping timeout: 252 seconds)
22:29:29ldleworkand your immediate thought is, why did they step backwards when this very thing has been implemented fantastically here and here
22:29:46EXetoCgokr: falling apart how?
22:30:31ldleworkIf you're having a hard time knowing what I mean
22:30:36ldleworkand it sounds too subjective
22:30:38gokrEXetoC: It was more like a question. Some language are very hard to "grow" like that (stdlibs) and others are very easy.
22:30:38ldleworkjust think
22:30:44ldleworkNim has gotten many things exactly right to this point
22:31:01EXetoCgokr: import the new module, and then just pretend that the new procs are members
22:31:02ldleworkMany of Nim's features feel modern and highly usable which call in its strong productivity
22:31:03gokrEXetoC: AFAICT its fairly easy in Nim, but I am unsure of shadowing etc.
22:31:28EXetoCunless you then run into a collision
22:31:40ldleworkNim has gotten the hardest things right on this front that we should just strive to get all the rest of the no-brainer parts of the language and project to a level of modern excellence in a similar way
22:31:44gokrEXetoC: Yes, I know, just wondering if there are any "traps" I should be aware of. Like for example, the fact that == can't be overridden by an "abstract class".
22:32:29gokrEXetoC: And collisions, is there an easy way to "remap" things in order to use two conflicting modules?
22:32:44*gokr looking up lang manual...
22:32:47TriplefoxI need to find time to actually use Nim more so that i can usefully contribute
22:33:12ldleworkI call on us to bear the pain it takes to arrive at a hopefully slicker implementation of whatever doesn't already seem impressively modern and usable
22:33:59EXetoCgokr: I don't think so. it seems reasonable to have to resolve the conflict at the call site if necessary
22:34:05EXetoCgokr: well, you can exclude symbols upon importing
22:34:10gokrEXetoC: Well, you do have the "as" also.
22:34:19*tomasi joined #nim
22:34:47gokrRigth, so those facilities are probably enough.
22:35:31gokrEXetoC: Regarding == - that was due to the fact that == is defined for "ref T" in system.nim (IIRC) and that will trumph a subtype relationship - so it can only be overridden in leaf types.
22:35:47gokrI just mentioned it as an example.
22:38:10gokrldlework: Sorry to ask, but can you reiterate (or point) to the "question at hand"?
22:38:18gokrBeen busy with christmas.
22:38:51gokrIs it about some mechanism - or about the slightly oddish current stdlib modules?
22:40:04ldleworkgokr: Basically what I kind of dream of is a project where we all use our hard-headed sharp stubborness to lead the project unequivocally and uncomprimisingly to the 'obvious' best implementation or interface for any given aspect of the Nim project
22:40:27gokrhehe
22:40:45gokrAnd how many years have you been part of a programming language community?
22:40:46ldleworkThat we don't make any excuses for this or that hasn't been made to the ideal, using where that has been implemented incredibly "nicely" before
22:41:14gokrPerhaps I should add a smiley to that last question :)
22:41:16ldleworkgokr: you mean the maintainence of the language itself?
22:41:24gokrLanguage and libs.
22:41:37ldleworkPython for 15 years or so
22:41:57ldleworkBut that isn't really the point
22:42:01gokrAnd that didn't make you realize that what you dream of is ... quite hard to do ?
22:42:07ldleworkNot at all
22:42:21ldleworkNim has gotten the hardest things already correct in the sense that I'm urging us to strive for
22:42:29ldleworkThink of how awesome Nim's macros and generics already are
22:42:32gokrIn your POV that is.
22:42:38gokrPerhaps not mine?
22:42:44ldleworkIn anyone here who loves Nim as much as I do
22:42:50ldleworkas in, the Nim we have
22:43:13gokrI just mean that... "obvious best" is not that obvious.
22:43:24ldleworkgokr: of course I understand that
22:43:46gokrEspecially when you consider them "together" and just not one by one.
22:43:58gokrFor example, macros...
22:44:01ldleworkBut this is the easiest way to forgive us for not arriving at a great solution
22:44:06gokrSeem fantastic, right?
22:44:53gokrAnd still, I cringed last night when I glanced at the quite long session hunting "bad gateway" and (I may be wrong) people were indeed wondering what code was actually running.
22:44:58ekarlso-no amqp lib for nim ? :'(
22:45:13ldleworkgokr: I don't understand what you just said
22:45:25gokrSo ok, macros in my mind is not 100% "good"
22:45:41ldleworkThat's fine, I'm not saying Nim's macros are ideal
22:45:47Araqgokr: I fail to see how macros have anything to do with this issue really
22:45:48gokrThey are an example of an abstraction that increases the "gap" between what I write and what is running.
22:45:55ldleworkI'm saying, compared to all the options available in the space that Nim occupies
22:46:05Araqit's not hard to output what they produce
22:46:08ldleworkNim's macros are *clearly* far and above in terms of being useful for doing things and getting word done
22:46:13gokrThis "gap" can be amazingly powerful, but also cause hard debugging etc.
22:46:30Araqgokr: no. it's not. you output the generated code.
22:46:41Araqthe tooling is already there but surely can get better
22:46:45gokrOk, let me reformulate what I mean.
22:46:50gokrTake C++ for example.
22:46:56ldleworkI would be very sad if I could get no one to agree with me that we should strive to make Nim exemplary in what it means for excellence in usability in modern programming design
22:47:06gokrYou can probably argue that each and every single feature in that language is "good"
22:47:12ldleworkand we got bogged down in relativism and specific issues
22:47:18gokrBut the sum of it is a huge freaking mess.
22:47:31Araqgokr: no. you can't. and that is what makes all the difference.
22:47:51gokrAraq: Can you please just skip the details and understand my point instead?
22:47:59ldleworkgokr: I would ask the same from you :/
22:48:01AraqC++ wants to get rid of its C base but couldn't for politicial reasons
22:48:13AraqNim has no such flawed base
22:49:07gokrldlework: I do understand your point, at least I thought I did.
22:49:07Araqas a result C++ is full of features that not even Stroustrup defends
22:49:10ldleworkI will just reiterate this sentiment from time to time and hope it has the change I intend
22:49:26ldleworkand try the places I can best contribute
22:49:32ldleworktry to find that is
22:49:43gokrldlework: So you feel there is resistence?
22:49:49gokr(since you hope for some change)
22:50:02ldleworkI feel like we make wierd forgivings for certain things
22:50:23ldleworkAnd when I consider the resulting language as a whole it hurts me that such simple things are clunky when so much is right
22:50:24gokrldlework: I was just trying to make the point that things that are "obvious good" to some people - are not to others.
22:50:29Varriount|BusyLike?
22:50:48Varriount|Busyldlework: What things are clunky?
22:50:55ldleworkVarriount|Busy: my actual concerns are very minor since I are overwhelmed by the goodness overall
22:51:06ldleworkand I always mention the things I find are not smooth
22:51:14ldleworkone thing is having to import basic features
22:51:32gokrAraq: I agree with that. But I still would argue that languages of such complexity - have an inherent problem in "complexity".
22:51:37ldleworkI think our basic types should have their most generally useful methods available by default
22:51:59ldleworkbut I don't have any concerns that would make me stop using Nim overall
22:52:03*skyfex quit (Quit: (null))
22:52:11ldleworkbut there are definitely things that will make me embarassed at the Nim booth at the language fair
22:53:24gokrI share your view that our basic types are anemic. Which is why I hope someone (like myself for example) will make newer libs that make them less so - and eventually such libs can trickle into stdlibs.
22:53:25ldleworkits hard to both give a strong call to modern excellence without giving up how strongly I do already like 90% of Nim in a way where I wouldn't change anything about it
22:53:46ldlework"don't get me wrong"
22:53:48ldlework:)
22:53:52ldleworkgotta go!
22:54:09Araqgokr: I argue that "complexity" doesn't mean much if anything. Algol was so complex people struggled to implement it.
22:54:18Varriount|Busyldlework: I agree with you on that. The problem is that it's hard to quantify 'basic features'
22:54:30Araqwhereas nowadays it would seem like a basic language, really.
22:55:12Araqfunction calls/if/for/while are a lot of features for what used to be 'goto'
22:55:51AraqWindows XP is bloated for its time, now it's pretty barebones
22:55:56Araq*was
22:56:08gokrAraq: Let's just agree then that you and a big part of the programming world differ :). The question of C++ and complexity is quite obvious IMHO.
22:56:11ldleworkVarriount|Busy: join, split, intToStr, parseInt, startsWith, endsWith, find, count, % and a few others all *really nice things* to have at hand
22:56:37Araqgokr: C++'s biggest problem is not the complexity, whatever that means. it's its unsafety.
22:56:41ldleworkI just feel like, we have a fundamental problem with system.nim
22:56:45gokrAraq: I beg to differ.
22:56:53*Demos joined #nim
22:57:05Araqyeah but I see no arguments, sorry. all I see is "everybody agrees with me"
22:57:24Araqwell I don't and I have given lots of good examples at least.
22:57:29*Ven joined #nim
22:57:37Varriount|Busyldlework: Perhaps we could use other languages as a 'guide' to what should be in system.nim?
22:57:37gokrI have seen so many big projects struggle with that complexity and just ending up burning money. Complexity is key.
22:57:40ldleworkthat if we didn't have to rely on system.nim, and the 'core' language could be built from refactored seprate modules we wouldn't have a hard time saying, "okay fine lets put the things that most other languages agree are the core methods on these basic types and put them in a string.nim module and put the other funky stuff in a non core strutils module"
22:57:55ldleworkVarriount|Busy: definitely
22:58:07ldleworkVarriount|Busy: this is a core strategy in how I think we will find that 'modern excellence'
22:58:28ldleworkVarriount|Busy: taking the average of the best prior art, and then seeing if we can improve anywhere and if not taking the average
22:59:04ldleworkhoping that Araq's taste gives good direction on the 'improve anywhere' step
22:59:14Epic|gmpreussnerVarriount|Busy: can you hook me up with an account for the build farm? i set up an armv6 build slave and will add an armv7 as well, possibly also an armv6-bigendian, but that may take a while
22:59:41*Epic|gmpreussner is now known as gmpreussner
23:00:06Varriount|BusyEpic|gmpreussner: Sure, will do. Give me a bit. I have to update a couple files.
23:00:29gokrldlework: Smalltalk is an interesting "counter point". There the base libraries have grown over time - and are vastly richer than those in most other languages. So rich in fact that the other end of the spectrum starts being a problem too.
23:01:41Araqgokr: and yet these projects are all in C or C++ or Java or C#. Some languages you would consider "simple", I think. software architects can overengineer anything
23:02:02gokrActually, I don't consider Java or C# "simple".
23:02:10*skyfex joined #nim
23:02:11Araqbut perhaps C?
23:02:43gokrC is not really "simple" as in "programmer Joe makes productive stuff" - the correct word would be "primitive".
23:03:57gokrI have programmed in very big Java projects (aargh!) and a fairly big C# product (very similar but slightly better than Java). And seen several big C++ projects.
23:04:05ekarlso-Araq: does nim have a amqp lib ? can't seem to find any :/
23:04:06gokrAnd lots and lots of these stagger under complexity.
23:04:24gokrThing is - you will probably say "A good programmer can use any language".
23:04:40gokrBecause you remind me of a friend of mine - that is a brilliant coder.
23:04:46EXetoCmust be fun to debug complex class hierarchies
23:04:55ldleworkI must be a horrible programmer
23:04:59gokrProblem is - the real world doesn't consist of "good programmers".
23:05:07ldleworkBecause I hate when a programming language makes me do stupid shit orthogonal to my goal
23:05:13ldleworkand many languages do that
23:05:27gokrThe real world has the whole freaking spectrum of idiots to geniuses. But idiots are clearly in numerous advantage.
23:05:32*irrequietus quit ()
23:05:53Araqgokr: Java was designed for the average developer though.
23:06:18Araqreally, it was. and yet it solved nothing for you
23:06:18gokrNow... given 10 programmers "at random". And you pick C++ or say Smalltalk or Python. Then in C++, 2 will make good code - 3 will make fair code - and the other 5 will sink the project.
23:06:36def-ekarlso-: there is https://github.com/def-/nim-nanomsg in that direction
23:06:54gokrIn Python, the numbers are better - and thus makes the chance of success much higher.
23:07:05ekarlso-def-: booo :(
23:07:10gokrAraq: I know the history of Java very well.
23:07:22gokrAnd yes, it was pruely silly to begin with.
23:07:27gokrpurely.
23:07:43gokrAnd at that point in time - the "applet" time - it was quite simple.
23:07:56gokrBut hehe, that soon changed :)
23:08:41gokrIt was actually designed for embedded use, applets was just a ... "hey, at least we can use it for this".
23:10:36AraqI cannot see how a language which embraces reference types (class) everywhere can count for "embedded use", especially at that time
23:11:10Araqit's so obviously a misdesign for that niche that it hurts my brain
23:14:44gokrWell, it was "embedded" as in ... tv set top boxes etc.
23:14:55gokrHome electronics.
23:15:13gokrNot "miniscule realtime in your shaver" stuff.
23:15:23*Demos quit (Read error: Connection reset by peer)
23:15:44*Demos joined #nim
23:17:26gokrAraq: Well, its all about how small you go on the embedded scale.
23:18:10gokrOOVM for example, by Lars Bak, was built primarily for embedded use, and in fact, Smalltalk has been used by Tektronics in their oscilloscopes back in the REALLY early days.
23:18:21gokrSo sorry, that argument of yours is really wrong too.
23:18:29gokr;)
23:18:58AraqI don't see how "stupid people pay for stupid things and make less money than they could" invalidates my argument
23:19:34gokrIts not stupid just because you don't know about it, you know.
23:19:56*Demos quit (Read error: Connection reset by peer)
23:20:05gokrSmalltalk and Lisp are quite suitable for some specific kinds of embedded systems.
23:20:16*Demos joined #nim
23:20:18gokrSince its easy (like Forth) to make them really small.
23:20:42gokrAnd debug live, hot load code etc etc.
23:21:52Araqthey are less suitable than any language with more control over memory layout would have been.
23:22:32Araqthey are however suitable when you only look at the sizes of your (byte) codes
23:23:17Araqand when you ignore your runtime data. and since that's an easy mistake to make, it is exactly what happened
23:23:43Araqsince you can easily measure code size, but "used memory when the program runs" is harder to measure
23:25:42ekarlso-Araq: i hope to see nim penetrate network services too
23:25:46ekarlso-a'la go style
23:26:08gokrTektronix 11xxx series of sampling oscilloscopes used a 68000 CPU and was built with embedded Smalltalk. They used Smalltalk for several of their oscilloscope products during many years.
23:26:29TriplefoxI think i have a nim project i might try...voxel renderer, make a game multicart that exercises it in various ways
23:27:10gokrAnd just claiming they are "less suitable" than "any language blabla" - you can't make that claim, because you don't know the prerequisites of those projects.
23:27:55gokrI would ask for some humblepie here.
23:30:18*kayph joined #nim
23:30:18AraqI'm not claiming that Tektronix did a mistake with choosing Smalltalk.
23:30:43AraqI'm claiming that Java's design is obviously wrong.
23:30:58Araqand I still got not a single argument against that.
23:31:04gokrWell, I claimed that it wasn't "obvious" and I gave prior art too.
23:31:16gokrSmalltalk is also fully ref based.
23:31:18Araqit's "Java as is" vs "Java as it could have been"
23:31:31gokrAnd it was obviously used successfully in embedded use.
23:32:15gokrThere was a Smalltalk for the Palm Pilot too in fact. IIRC the interpreter was 19kb or so.
23:32:46Araqso again you bring up *code* sizes
23:32:51gokrAnyway, I gotta hop to bed. It seems all I did here was claiming things aren't "obvious" :)
23:32:59TriplefoxThere are lots of examples of high level interpreters on tiny devices
23:33:15TriplefoxBut most engineers decide to go with extra headroom
23:33:34Araqhi kayph welcome
23:33:41TriplefoxYou never know if the specs will change and make you redline the hardware
23:33:54ekarlso-whaaat, another swede!
23:34:03EXetoCawesome
23:35:30gokrAraq claims a fully ref based language (like Java) was "so obviously a misdesign for that niche that it hurts my brain". Then I explained that Smalltalk has been successfully used in several embedded use cases - like Tektronix oscilloscopes. In 1980s.
23:35:55gokrekarlso-: Another?
23:36:17ekarlso-kayph: host bredband2.com
23:36:19gokrSo anyway, I just don't think the world is "black and white".
23:36:22Araqgokr: Java is not even fully ref based
23:36:23ekarlso-:o
23:36:46gokrAraq: Sure.
23:37:23Araqit gave up the simplicity of "only ref based typing" without gaining all its benefits
23:37:42Araqso yes, it was obviously wrong.
23:38:07gokrOh, the design of Java being bad? Sure.
23:38:26gokrBut you didn't write that.
23:38:41gokrAnyway, not very productive discussions :)
23:38:51Araqindeed
23:39:27skyfexCan't we all just agree that we don't like Java? :P
23:39:36gokrAnd given that I know you have borrowed good stuff from all over the place - I think you can appreciate "good stuff" even if its from a place like Smalltalk.
23:39:50EXetoCskyfex: yes!
23:39:51gokrskyfex: Hehe, that was never up for debate.
23:40:24ekarlso-yet so many people love java :P
23:40:32gokrI hated it when it came because it was braindead, and then I hated it when it turned into an inexplicable beast worshipping the church of complexity.
23:40:41EXetoCskyfex: I don't have to use it before hating it, right? same for php, yeah?
23:41:45Varriount|Busyekarlso-: I think lots of beginner programmers love java, because they don't know anything else.
23:42:22Varriount|BusyIt's still the first language usually taught in beginner comp. sci courses
23:42:37ekarlso-Varriount|Busy: i love python ;)
23:43:04ekarlso-and now starting to like nim since it feels alike
23:43:13gokrIts also ... a community in which people gain "respect" etc by making stuff overly complicated. They worship it. Because it makes them local "Gods". Factory Factories producing abstract little factories injected with some dependency crap.
23:43:15Varriount|Busyekarlso-: As do I. Was python taught in your first computer science class?
23:43:35ekarlso-Varriount|Busy: never been to a computer science clas ;)
23:43:40gokrgnite folks
23:43:42ekarlso-I got no degree nor will I ever : )
23:43:52*yglukhov_ quit (Quit: Be back later ...)
23:43:55tomasiSorry guys, I'm looking for some information in the documentation regarding the C FFI but am not able to find it.
23:43:59TriplefoxWhen i took cs they started in java but i was learning python at the same time
23:44:06ekarlso-self-taught Varriount|Busy
23:44:07TriplefoxI did assignments twice
23:44:08tomasi I am writing bindings to "libtermkey" (http://www.leonerd.org.uk/code/libtermkey/), which has this complex "TermKeyKey" struct. Such struct is meant to be statically allocated, and initialized by functions which accept a "TermKeyKey *" argument.
23:44:37tomasiFields of such structure are meant to be accessed directly.
23:44:56ekarlso-how the crap can I install aporia on osx..
23:45:02TriplefoxAt the end they switched to c and made you redo an assignment there
23:45:22tomasiI think I need to make the "struct" fields visible from Nimrod, but I have no idea if there is a pragma for this
23:45:41Araqtomasi: how do you wrap it? 'dynlib' or 'header'?
23:46:16tomasi"header". It's a small C library, and I'm including the C sources in the same dir as the Nim sources, as it is not available under Ubuntu
23:46:27tomasi(via apt-get, I mean)
23:46:53Araqlook at posix.nim of how to importc such objects/structs then
23:47:01tomasiThanks a lot
23:48:43ekarlso-Araq: seen this before? http://pastebin.com/xZTXPLJ2
23:48:46ekarlso-yosemite
23:49:02*gmpreussner_ joined #nim
23:49:13*gmpreussner quit (Ping timeout: 256 seconds)
23:49:18Araqekarlso-: yes.
23:49:27Araqit means something is out of date
23:50:26Varriount|Busygmpreussner_: What is the command that invokes the python 2.7 binary on your armv6 system?
23:51:14ekarlso-meh, now "aporia" cannot open display :/
23:51:47*kayph quit (Remote host closed the connection)
23:55:09ekarlso-has anyone used aporia on osx ?
23:55:44Araqekarlso-: yes
23:56:17Araqbut maybe nodoby in #nim did :P
23:56:21ekarlso-Araq: it's failing here atm :/
23:56:24Araq*nobody
23:56:44ekarlso-cannot open display :(
23:56:46ekarlso-booo
23:58:08ekarlso-Araq: clues ?
23:58:47EXetoCrunning it as root?
23:58:57ekarlso-EXetoC: no, should I +
23:59:18tomasiGoodnight to everybody
23:59:36*yglukhov_ joined #nim
23:59:41*tomasi quit (Quit: ERC Version 5.3 (IRC client for Emacs))
23:59:53Araqekarlso-: no.