<< 26-03-2015 >>

00:00:11flaviuDoes that play nice with autocomplete?
00:00:31Araqnot yet
00:00:43Araqfor reasons that currently escape me
00:00:49Araqbut it's in my todo ...
00:01:22*mwbrown joined #nim
00:01:57reactormonkAraq, https://github.com/reactormonk/nim/commit/ceb7260a87827883de11c6a4d1e1d24d4916171d reasonable?
00:02:35Araqyup
00:03:59EXetoCAraq: "template t(e: expr) = e.foo" ... "getAst(t(someVar))" is it possible to take advantage of this when someVar does not refer to an identifier that has been defined outside the macro? say if that code resides in a macro like this "macro m(someVar: expr)"
00:04:07EXetoCthe purpose being increased readability
00:04:20reactormonkAraq, push or PR?
00:04:46EXetoCI'll try something else
00:05:34EXetoCnope
00:05:50Araqreactormonk: push it
00:06:06EXetoC"foo(e)" to be specific
00:06:13reactormonkrebooting compiler just to make sure
00:06:22Araqoh i see
00:06:27Araqyou never test your stuff
00:07:36AraqEXetoC: I'm rethinking expr/stmt and immediate but I don't understand what you mean
00:07:46reactormonkI have a certain threshold where I start testing a lot
00:07:50EXetoCok
00:08:27gmpreussner|workthx dom96 :)
00:12:58EXetoCAraq: say if I do this instead "getAst(t(genSym()))" or by turning it into an identifier first. I then get "undeclared identifier: :tmp"
00:19:42EXetoCthe template can be used for this situation: "forEach x, declaredVar: ..", but not for this: "forEach x, @[1, 2]: ..". I suppose there could be a feature more specific to templates for this purpose
00:22:05Araqstill not sure what you're after but note that 'expr' makes .immediate superfluous
00:23:47Araqso ... good news is
00:24:09AraqNim is getting a[^1] to access the last element
00:24:10EXetoCworks: "t(declaredVar)", doesn't work: "t(newIdentifierNode($genSym()))"
00:24:17EXetoCso, very macro specific I guess
00:24:32Araqah well, how can that work?
00:24:32EXetoCAraq: great
00:24:32def-Araq: very cool, no more foo.bar.baz[foo.bar.baz.high]
00:24:51Araqdef-: want me to push it already?
00:25:08def-Araq: if it's ready and working, sure
00:25:15EXetoCAraq: that's why I thought that maybe it'd have to be a separate language feature
00:25:29EXetoCor maybe just a new pragma
00:27:16BlaXpiritAraq, what will ^ be replaced with?
00:27:41BlaXpiritif it's going to be len, don't forget to consider arrays that start with something other than 0
00:27:54*reem quit (Remote host closed the connection)
00:27:59dom96Araq: It will still be possible to overload `^` right?
00:28:18def-dom96: i hope so, `^` is in math
00:29:00*HakanD_________ quit (Quit: Be back later ...)
00:29:02Araqdom96: yes
00:29:14AraqBlaXpirit: a[^1] is rewritten to a[a.len-1]
00:29:18EXetoCthe purpose is to replace complex node construction chains with the way the node would look in the source representation of the AST generated in the macro
00:29:33BlaXpiritAraq, what about array[5..10]
00:29:56Araqdunno what about it?
00:30:09EXetoClike above, but without the limitations, but maybe I'm omitting something
00:30:14Araqah ok, I see
00:30:23Araqwell that's a good point fuck
00:30:26BlaXpiritarray[5..10] [^1] would be... 5
00:30:31flaviumore syntax sugar :/
00:31:09EXetoCwhy not?
00:31:18BlaXpiriti think this is a good opportunity to make the rear end 0-indexed as well
00:31:40BlaXpiritand consider making special syntax for both low,high instead of len
00:31:43flaviu.eval import macros; dumpLisp("123"[1.. ^2])
00:31:46Mimbusflaviu: BracketExpr(StrLit(123), Infix(Ident(!".."), IntLit(1), Prefix(Ident(!"^"), IntLit(2))))
00:31:48*banister is now known as banisterfiend
00:32:11AraqBlaXpirit: but then people coming from python cannot translate a[-1] to a[^1]
00:32:23BlaXpirittoo bad
00:32:23Araqbut need to translate it into a[^0]
00:32:41BlaXpiriteasy for me to throw ideas..
00:32:49*Senketsu quit (Quit: Leaving)
00:32:51EXetoChaven't we already deviated from some common things?
00:33:09Araqbut your array point is a good one, we need to rewrite a[^1] to use 'high'
00:33:19*reem joined #nim
00:33:40Araqand then a[^0] is a[a.high-0]
00:33:41BlaXpirit^ rewritten to high+1 ? :|
00:33:50Araqyeah that sux
00:34:24EXetoCyes
00:34:30Araqflaviu: technically speaking it's not the parser that changes
00:34:43Araqso there is not more syntax here.
00:35:51BlaXpirithmmm funny thing is
00:35:59BlaXpiritif everything is compiletime optimized
00:36:08BlaXpiritand high is almost always defined as len - 1
00:36:34BlaXpiritthen maybe len - 1 + 1 will be optimized and no need to cry
00:37:01Araqwhat? that's already optimized on the C level
00:37:16EXetoCand then it can crash faster? :p
00:37:24BlaXpiritno i mean ^ = high+1 = len-1+1
00:37:30BlaXpiritjust wondering if it's good
00:37:46AraqI care about conceptual clarity here
00:38:00Araq-1+1 is optimized away anyway
00:38:04BlaXpirithopefully
00:38:23Araqand if it isn't we can optimize it away
00:39:26Araqon the other hand ... who uses array [5..10] anyway? I only use it for lookup tables and for these I never use a[^1]
00:39:35BlaXpirityeah, u should remove it
00:39:59Araqno, they are nice for array[low(enum)+1 .. high(enum)] etc
00:40:00*Senketsu joined #nim
00:40:01BlaXpiritthe only thing i can come up with is
00:40:13BlaXpiritwhen you're doing ^, assert len==high-1
00:40:20BlaXpirituh +1
00:40:30Araqaye
00:40:39Araqcan do that easily
00:40:50BlaXpirit:>
00:41:46BlaXpiritok so basically ^5 will be len-5 but it will work only when len-1 == high
00:42:03Araqyes
00:42:13*sampwing quit (Ping timeout: 252 seconds)
00:43:44BlaXpiriti dont know why i havent thought of this before (you probably did), but at first only warn about negative indices
00:45:22Araqthat's in my proposal, yes
00:45:51Araqbut we need to do "warning + here is the workaround" at the same time
00:46:40BlaXpiritsure
00:47:30Araqbut it's a particularly nasty warning
00:47:42Araqthat produces output at *runtime*
00:48:01BlaXpiritoh
00:48:57Araqer ... low+1 != len iff low != 0, right?
00:49:15Araqhigh+1 != len iff low != 0, I mean
00:49:43BlaXpiritinteresting
00:49:47BlaXpiritsure seems to be the case
00:50:43*irrequietus quit ()
00:54:59*jasondotstar joined #nim
00:57:33*alex99 joined #nim
00:57:43*ChrisMAN joined #nim
00:58:29*wink-s joined #nim
00:59:33*bcinman quit (Ping timeout: 248 seconds)
01:00:33*BlaXpirit quit (Quit: Quit Konversation)
01:01:51*bcinman joined #nim
01:02:00*bcinman quit (Remote host closed the connection)
01:03:45*bcinman joined #nim
01:06:16*gokr quit (Ping timeout: 255 seconds)
01:06:35*bcinman_ joined #nim
01:08:21*bcinman quit (Ping timeout: 250 seconds)
01:18:44*saml_ joined #nim
01:19:48*fizzbooze quit (Ping timeout: 272 seconds)
01:20:09EXetoCis gist broken or something?
01:20:40*bcinman joined #nim
01:21:06*bcinman quit (Read error: Connection reset by peer)
01:23:01*alex99 quit (Ping timeout: 246 seconds)
01:24:14*bcinman_ quit (Ping timeout: 272 seconds)
01:27:55Araqgood night
01:34:13*wink-s quit (Ping timeout: 246 seconds)
01:41:23*hamgom95 joined #nim
01:41:57fowlthis is one person http://en.wikipedia.org/w/index.php?title=Nim_(programming_language)&action=history
01:42:03fowlmarking for deletion
01:43:43*fizzbooze joined #nim
01:44:11fowlall this user does is mark things for deletion
01:45:43flaviufowl: There is no need to get upset or take it personally, and accusing that user isn't going to accomplish anything but make you look bad.
01:46:17fowlnoted
01:46:25fowlmy public image is my own concern
01:48:38*reem quit (Remote host closed the connection)
01:49:22flaviuYes, completely correct, although questionable tactics might annoy them away from objectivity.
01:49:48*reem joined #nim
01:55:26*fizzbooze is now known as slash
01:57:41*darkf joined #nim
02:09:35*brson quit (Quit: leaving)
02:17:12*brson joined #nim
02:29:53*brson quit (Quit: leaving)
02:32:56*hamgom95 quit (Read error: Connection reset by peer)
02:42:07*Senketsu_ joined #nim
02:42:45*mwbrown_ joined #nim
02:45:25*Senketsu quit (Ping timeout: 250 seconds)
02:45:25*mwbrown quit (Ping timeout: 250 seconds)
02:51:24*Michael__ joined #nim
02:51:34*slash quit (Ping timeout: 255 seconds)
02:51:48*Michael__ is now known as Guest46822
02:55:51*mwbrown_ quit (Ping timeout: 250 seconds)
02:57:33*vince- quit (Ping timeout: 250 seconds)
02:57:41*vinnie joined #nim
03:08:00*reem quit (Remote host closed the connection)
03:09:46*jefus_ joined #nim
03:10:19*saml_ quit (Quit: Leaving)
03:12:47*reem joined #nim
03:13:37*jefus quit (Ping timeout: 264 seconds)
03:20:21*noriok joined #nim
03:20:42*noriok quit (Client Quit)
03:25:51*slash joined #nim
03:31:32*slash quit (Ping timeout: 272 seconds)
03:35:01*jholland quit (Quit: Connection closed for inactivity)
03:59:50*Senketsu_ quit (Read error: Connection reset by peer)
04:20:05*fizzbooze joined #nim
04:39:50*Guest46822 quit (Ping timeout: 246 seconds)
04:51:07*polkm joined #nim
04:52:32polkmI have a ptr to a c style array how do I go about indexing a ptr like a nim array?
05:02:21*reem quit (Read error: Connection reset by peer)
05:03:27*reem joined #nim
05:06:49fowlpolkm, cast it to an unchecked array
05:07:08polkmis that a keyword?
05:07:11fowlhttps://gist.github.com/fowlmouth/42c762d6ad81e7a4dfb9
05:07:39polkmperfect thank you
05:56:44polkmdo you think const file = readFile("foo.txt") could work?
05:58:00fowlpolkm, there is a function for reading a file at compile time that would work there
05:58:08fowlstaticRead()
05:59:32cazovfowl: you mean slurp? :]
06:04:33polkmDank, but I am getting errors reading the file
06:05:26polkmI use the same path from readFile is that correct?
06:20:16polkmoh its working dir is different
06:22:22reactormonkpolkm, yeah, const is evaluated compile-time, so you can't use readFile because there's no FFI at compile-time
06:22:41reactormonk... that's what slurp is for.
06:25:12*reem quit (Remote host closed the connection)
06:26:21reactormonkhow do I ensure stuff works with spawn?
06:43:32*gokr joined #nim
06:45:43*reem joined #nim
06:45:55*bjz joined #nim
06:48:34*reem quit (Remote host closed the connection)
06:49:55*reem joined #nim
06:53:04*reem quit (Remote host closed the connection)
06:53:53*reem joined #nim
07:02:16*fizzbooze quit (Ping timeout: 256 seconds)
07:15:27*Demon_Fox quit (Quit: Leaving)
07:22:52*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
07:28:05*gsingh93 quit (Ping timeout: 265 seconds)
07:38:42*bjz joined #nim
07:40:02*bjz quit (Client Quit)
07:41:19*bjz joined #nim
07:46:51*dtscode quit (Quit: ZNC - 1.6.0 - http://znc.in)
07:47:59*Ven joined #nim
07:48:02*dtscode joined #nim
07:51:10*bjz quit (Ping timeout: 250 seconds)
07:52:55*polkm quit (Ping timeout: 246 seconds)
07:59:02*ekarlso quit (Quit: WeeChat 0.4.3)
08:06:59*Ven quit (Ping timeout: 252 seconds)
08:15:42*BlaXpirit joined #nim
08:17:41Araqreactormonk: the point of merge ops is to mitigate the thread local heaps
08:17:48Araqso you do something like:
08:17:57Araqin parallel:
08:17:59*reem quit (Remote host closed the connection)
08:18:30Araq result.merge( ^someFlowVar)
08:20:15Araqand actually the language should ensure your merge is correct but I haven't thought too much about it and it needs much more testing anyway
08:20:21*reem joined #nim
08:20:53*johnsoft quit (Read error: Connection reset by peer)
08:27:19*reem quit (Remote host closed the connection)
08:29:02*johnsoft joined #nim
08:33:37*reem joined #nim
08:36:06*bjz joined #nim
08:41:39*HakanD_________ joined #nim
08:47:40*reem quit (Remote host closed the connection)
08:48:28*HakanD_________ quit (Quit: Be back later ...)
08:49:11*reem joined #nim
08:52:10*reem quit (Remote host closed the connection)
08:53:12*BlaXpirit_ joined #nim
08:56:19*BlaXpirit quit (Ping timeout: 256 seconds)
08:59:11*reem joined #nim
09:03:43*Trustable joined #nim
09:11:22*Ven joined #nim
09:14:03*Sembei joined #nim
09:16:40*wb quit (Read error: Connection reset by peer)
09:18:46*HakanD_________ joined #nim
09:42:58gokr Hmmm, the IDE support for VS, is that https://github.com/barcharcraz/VisualNimrod ?
09:43:16AraqI think so
09:43:39Araqmaybe we can summon Demos who wrote it
09:56:57gokrI am writing a followup article for yesterday
09:57:12gokrWanted to pick up a few loose ends I missed, like IDE support for example
09:57:33*ekarlso joined #nim
10:00:16Araqekarlso!
10:00:20ekarlsoAraq: ello..
10:00:30Araqgot CGI to work? ;-) :P
10:00:41ekarlsoAraq: .... nope
10:00:49ekarlsohaven't had the time for nim the last two weeks ish : |
10:01:02Araqthen ask for help here please, we want that thing
10:01:17ekarlsoAraq: you can figure out why it crashes...
10:01:20ekarlso:P
10:01:37Araqno, next month perhaps
10:01:37*reem quit (Remote host closed the connection)
10:01:50Araqthere are far more pressing crashes and leaks to figure out, sorry
10:02:31ekarlso:p
10:02:33Araqas I said, it doesn't help you really anyway. use (S)CGI
10:02:52ekarlsoAraq: .... I dont wanna have to rewrite stuff :(
10:03:13Araqekarlso: so let somebody else do it
10:03:37Araqthere are people here enjoying to program in Nim :P
10:08:31ekarlsoany hints Araq on how I can debug the selector issue ?
10:08:54Araqcould be dom96's bug
10:09:08Araqor could be that you forgot to initialize something
10:09:25ekarlsowhat bug is dom96's ?
10:12:17Araqdom96 wrote async
10:12:30*HakanD_________ quit (Read error: Connection reset by peer)
10:12:47*HakanD_________ joined #nim
10:14:00ekarlsodom96: you about ? :D
10:18:59gokrI am looking at what tools we have, we do have doc generation, niminst and nimfix (although beta) - and nimsuggest. And nimble, c2nim and so on but those are external. Do we have more?
10:19:27gokrNo lintish tool and no formatting tool, right? Just so i didn't miss them.
10:23:01*TEttinger quit (Ping timeout: 256 seconds)
10:28:35def-don't think so, gokr
10:29:37*cazov quit (Ping timeout: 252 seconds)
10:29:43*cazov joined #nim
10:32:40*NimBot joined #nim
10:34:05ekarlsoAraq: just curious, so the bug happens with something related to selectors.nim and using startProcess at least..
10:34:27ekarlsoaround selectors.nim#169
10:35:08ekarlsodunno how to narrow it down but :/
10:35:12def-ekarlso: oh, I had a problem around there before
10:35:25def-ekarlso: does the assert fail or what?
10:35:30ekarlsodef-: yeah
10:35:45ekarlsoI changed it to a "if" instead and continue if it's nil
10:36:54ekarlsoat least now it doesnt blow up...
10:39:53ekarlsoso yeah, ill just "patch" my install of the compiler for the time being to ignore that ...
10:39:58ekarlsothen the service should be "stable"
10:40:18ekarlsothough it would be interesting to know why it happens..
10:40:20Araqand ... erm ... I don't dare to ask
10:40:25ekarlsoAraq: ? ...
10:40:35Araqcan it then handle more than a single user?
10:40:53ekarlsolemme test :p
10:43:26gokrHmmm, I don't really understand this nimrtl thing I suppose.
10:44:13gokrIt seems to contain lots of stuff - I was under the false impression that it was the GC basically.
10:44:45Araqbut only the GC is required to be in there
10:45:01*HakanD_________ quit (Read error: Connection reset by peer)
10:45:08Araqwe included other parts of the stdlib too to save space
10:45:36*HakanD_________ joined #nim
10:46:04Araqfor the people who care about 10KB in their exes and then forget about efficiency and download gigabytes of porn
10:47:51LoneTechwhat about my kind, who run Nim on hardware with 32KiB flash and 4+2KiB RAM?
10:49:46AraqLoneTech: do you need dynamic linking in this setting?
10:49:47federico3LoneTech: we'll provide compressed ascii porn
10:49:52LoneTechnope (:
10:50:08AraqLoneTech: there you go :-)
10:50:46LoneTechthe biggest waste I've noticed so far is that modules with no initializing code still get two subroutines and calls to them for initializations
10:50:48federico3LoneTech: that's really tiny hw, what is it?
10:51:01AraqLoneTech: yeah I need to fix that
10:51:04LoneTechMSP430F5510, a 16-bit microcontroller
10:51:19LoneTechit's not a big deal, I have plenty of space still
10:53:31LoneTechalso just getting started so far. I've blinked a LED and run an interrupt proc when I push a button
10:53:59LoneTechnim thinks it's an avr, just because what nim thinks an avr is describes the msp430 more closely
10:54:29Araqlol nim thinks embedded == avr
10:54:51LoneTechyes, but nim's idea of avr seems to be little endian 16 bit
10:55:03LoneTechavr is 8 bit and doesn't truly have endianness
10:55:27Araqhrm yeah but C's int is always 16bit at least too
10:55:31LoneTechyes
10:55:42Araqalso it's address space is not 8 bit
10:55:47Araqand only address space counts
10:56:19Araqthe other definitions of "how many bits does the machine use natively" make no sense ;-)
10:56:57Araq*its
10:57:02LoneTechdepends on what part you're designing. but in that sense, it may matter more that avr is modified Harvard; it has different address spaces
10:57:30LoneTecha flash const pointer cannot be used the same as a ram const pointer
10:58:01LoneTechmsp430 is von neumann, its address space includes both memories and IO
10:58:19ekarlsoAraq: meh, async stuff with osproc seems to be totally b0rk atm
10:58:31LoneTechmy next step is getting some buffers allocated in USB memory using a region attribute, I think.
10:58:36Araqekarlso: oh really? tell me about it
10:59:38ekarlsoAraq: it bugs at around selectors#169...
11:00:02LoneTechoh, also I haven't figured out how to get a computedGoto to play nicely with interrupt vector registers. some of the indirect vectoring is designed to be done with an array of jump instructions
11:00:46ekarlsohttps://bpaste.net/show/e261645a4fc8 < in theory Araq shouldn't that work ?
11:00:54LoneTechbut nim+gcc seem to think odd values matter even though they're not in the enum (the physical register read cannot produce them)
11:02:49AraqLoneTech: nim's computedgoto is limited and designed for interpreter *loops*
11:03:32LoneTechyep. just wasn't my use case. leaving it alone as a minor optimization
11:04:21Araqusually a 'case' produces an array of jumps if gcc thinks it's better
11:04:44LoneTechthe problem is GCC seems to think odd values can occur
11:05:00LoneTechand doesn't recognize that all non-default case ones are even
11:05:14LoneTechmaybe it would do better if I put in "and not 1"?
11:05:38AraqNim generates __assume(0) or something for you
11:05:51Araqbut your case needs to be exhaustive for that
11:06:14LoneTechit is
11:06:25LoneTechI made an enum
11:06:45Araqekarlso: dunno, looks correct to me
11:07:12AraqLoneTech: check the generated C code please
11:09:01LoneTechif I use computedGoto, nim generates an array with references to the nonexistent odd cases, and gcc won't compile it
11:09:05*HakanD__________ joined #nim
11:10:18LoneTechno hint of assume either way
11:10:21AraqLoneTech: don't use computedgoto
11:10:33Araquse an ordinary 'case' instead
11:10:34LoneTechokay
11:11:17LoneTechit's just the underlying values are literally designed for a computed goto; the register values are chosen for use as an indirect jump
11:11:18EXetoCis anyone able to post things on gist?
11:11:48def-EXetoC: yes, works for me
11:12:40EXetoCvery odd
11:12:53*HakanD_________ quit (Ping timeout: 256 seconds)
11:17:34*mikolalysenko_ joined #nim
11:17:48LoneTechI'd like to be able to make parameterised user defined pragmas, and attributes with something less clunky than codegenDecl (which crashes the compiler without hinting why if I have a $# more than the particular declaration should)
11:18:55LoneTechright now I have a macro injecting codegendecl pragmas in the AST, and another custom pragma doing the same, but neither method stacks
11:18:58*keypusher joined #nim
11:19:15*cazov_ joined #nim
11:19:21LoneTechnot that I need to yet, but it's a mechanism I might have liked.
11:19:52*Ven_ joined #nim
11:20:07*arnetheduck_ joined #nim
11:21:30LoneTechhuh. is volatile implemented that way? because it broke.
11:22:04*BlaXpirit joined #nim
11:22:13*armin joined #nim
11:22:31*silven_ joined #nim
11:24:33*dts joined #nim
11:25:05*Ven quit (*.net *.split)
11:25:05*banisterfiend quit (*.net *.split)
11:25:05*silven quit (*.net *.split)
11:25:06*ggVGc quit (*.net *.split)
11:25:06*mikolalysenko quit (*.net *.split)
11:25:06*dv- quit (*.net *.split)
11:25:06*polde quit (*.net *.split)
11:25:06*Guest67437 quit (*.net *.split)
11:25:07*dom96 quit (*.net *.split)
11:27:17*ggVGc joined #nim
11:27:55*BlaXpirit_ quit (Quit: Quit Konversation)
11:28:12*mikolalysenko_ is now known as mikolalysenko
11:29:17*dv- joined #nim
11:29:17*polde joined #nim
11:29:17*Guest67437 joined #nim
11:29:17*dom96 joined #nim
11:29:35*polde quit (Max SendQ exceeded)
11:30:18*polde joined #nim
11:30:30*cazov quit (*.net *.split)
11:30:30*dtscode quit (*.net *.split)
11:30:30*arnetheduck quit (*.net *.split)
11:30:30*reloc0 quit (*.net *.split)
11:30:30*key_ quit (*.net *.split)
11:30:30*flaviu quit (*.net *.split)
11:30:31*delian66 quit (*.net *.split)
11:30:31*ekarlso quit (*.net *.split)
11:30:32*vendethiel quit (*.net *.split)
11:30:32*clynamen quit (*.net *.split)
11:30:33*jj2baile quit (*.net *.split)
11:30:33*xandy quit (*.net *.split)
11:30:33*def- quit (*.net *.split)
11:30:33*Amrykid quit (*.net *.split)
11:33:41*delian66_ joined #nim
11:33:42*ekarlso joined #nim
11:33:42*vendethiel joined #nim
11:33:42*clynamen joined #nim
11:33:42*jj2baile joined #nim
11:33:42*xandy joined #nim
11:33:42*def- joined #nim
11:33:42*Amrykid joined #nim
11:34:19LoneTechyep. codegendecl completely excludes the cgen part that would include volatile or register
11:45:49LoneTechit sets constraint, which is checked in localVarDecl and assignGlobalVar.
11:48:37ekarlsomeh ok
11:48:40ekarlsoI give the crap up ...
11:48:56ekarlsoapparantly that approach of using selects doesn't work either with multiple requests *yay for being async eh*
12:01:47EXetoCLoneTech: what are you passing to the macros? procs?
12:01:59LoneTechyes
12:02:31LoneTechlike the port2 isr in https://github.com/lonetech/nim-msp430/blob/master/blink.nim
12:03:13EXetoCif it doesn't stack then I guess you aren't applying the pragmas to the procs directly
12:03:48EXetoC"proc p {.foo, bar.} = .."
12:03:53LoneTechoh, the macro isn't the problem. the problem is I have found no pragma or similar to just add an attribute.
12:04:26LoneTechas it turns out, volatile and register pragmas both break if you use a codegendecl pragma
12:05:03LoneTechwhich I found because I needed a section attribute to place some buffers in the USB RAM
12:06:12LoneTechI may need a function boundary just to keep a barrier between filling the buffer and submitting it for transfer
12:06:33LoneTech(probably a better way than making it volatile anyway, but I didn't expect it to break)
12:07:38EXetoCbut it is adding an attribute, isn't it? so the problem is bugs then?
12:08:06LoneTechno. there's no way to add generic attributes. register and volatile are hardcoded into the compiler.
12:08:08*irrequietus joined #nim
12:08:28LoneTechcodegendecl isn't the most elegant way of adding attributes with names the compiler doesn't know imho
12:08:49EXetoCok
12:09:11LoneTechit just bypasses sections of the compiler in undocumented ways
12:09:30LoneTechperhaps more significantly, it would also break extern
12:09:35EXetoCbut if the compiler crashed at some point then you should be able to get a stack trace if you do './koch temp' and then compile with the generated nim_temp
12:10:42EXetoCit's similar to ./koch boot but it outputs nim_temp. I assume you booted with -d:release
12:11:14LoneTechyes, at whatever place it actually uses p.module.s to insert the name and type in code generation.
12:11:22LoneTechcorrect
12:12:13EXetoCand nothing like that seems to have been reported
12:13:02LoneTechI figured codegendecl use overall is a bit of a kludge with compiler internals. I didn't know until just now how many other pragmas it broke.
12:13:57LoneTechall my uses so far would have been better served with a stackable attribute pragma
12:17:02EXetoCok. feel free to make a feature request, but don't hold your breath :p
12:17:43LoneTechof course. I'm still just getting oriented
12:22:01*banister joined #nim
12:38:41*mwbrown joined #nim
12:44:53*armin is now known as reloc0
12:47:35*banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:48:02*Ven_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:56:29*banister joined #nim
12:56:33*banister quit (Max SendQ exceeded)
12:58:00*mpthrapp joined #nim
13:01:56*banister joined #nim
13:02:16*reem joined #nim
13:05:55*pafmaf joined #nim
13:07:01*reem quit (Ping timeout: 248 seconds)
13:07:25*BlaXpirit quit (Quit: Quit Konversation)
13:09:40*arhuman_ joined #nim
13:09:45arhuman_hello
13:10:42LoneTechhello
13:13:13*mwbrown quit (Quit: Leaving)
13:16:53AraqLoneTech: the codegenDecl issues have already been reported :-)
13:17:07Araqand it looks like you already know how to fix them?
13:17:11Araqso go ahead please
13:18:44*emilsp quit (Remote host closed the connection)
13:18:56*vendethiel quit (Ping timeout: 246 seconds)
13:19:55*vendethiel joined #nim
13:22:36*banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:24:25LoneTechAraq: I might give it a try, thanks for the encouragement
13:24:38LoneTechwill be later though
13:28:28Araqaha so now companies using Nim doesn't count for a wikipedia article either.
13:28:53Araqhow bizarre can it get?
13:29:14EXetoCmaybe if nasa starts using it
13:29:14LoneTechmuch more. wikipedia is roamed by roving bands of editors each with their own ideas of what the rules are.
13:29:52LoneTechsome of them have turfs, and not all of them are honest, and many of them disagree
13:30:15gokrIt does feel kinda hopeless - no, there is no book yet. But I suspect an article in some magazine will appear soon, so that may turn out to be the "rescue".
13:30:51Araqwell if *I* write the book it doesn't count either anyway
13:31:13Araqit has to be written by somebody who knows less about Nim
13:31:51def-Hm, one of my Nim articles is in some magazin, but it's probably not serious enough: http://hackermonthly.com/issue-58.html
13:32:19Araqbut if the author then contributes enough to Nim, he is a coredev and then it doesn't count again
13:34:18gokrSo we need a clueless person on some magazine to whip up an article :)
13:34:43Araqdunno, they will then say it's not peer reviewed
13:36:16EXetoCso, find someone who doesn't know too much. ok it all makes sense now
13:37:13*arhuman_ quit (Quit: leaving)
13:40:31*emilsp joined #nim
13:40:39gokrWrote a followup btw: http://goran.krampe.se/2015/03/26/nim-visits-gtug/
13:42:10*yymoto2 joined #nim
13:44:30*wb joined #nim
13:46:15*gokr quit (Ping timeout: 250 seconds)
13:46:44*pafmaf__ joined #nim
13:47:46wbAbout the asyncdispatch module, do procs marked {.async.} run automatically or do I need to explicitly create a thread from runForever()?
13:47:49*pafmaf quit (Ping timeout: 264 seconds)
13:50:26Araqyou need to run them
13:52:00wbalright, thanks
13:54:13*a5i joined #nim
13:57:17tstmWhat are you guys using for editing Nim?
13:57:33emilspvim
13:57:47EXetoCvim
13:58:42bw_vim + https://github.com/zah/nimrod.vim
13:58:49tstmAre you using any code completion or doc features in vim for such?
13:59:09emilsptstm, I'm using nimrod.vim and ycm
14:12:25*pafmaf__ quit (Ping timeout: 264 seconds)
14:17:36*gokr joined #nim
14:20:01*banister joined #nim
14:20:09*Ven joined #nim
14:32:28*yymoto2 quit (Quit: leaving)
14:33:03*pregressive joined #nim
14:41:16*untitaker quit (Ping timeout: 256 seconds)
14:41:31EXetoCtstm: I can't remember. I know there's good-to-definition functionality. idetools was broken before so I don't know if it works now
14:42:03tstmycm seems to work
14:42:06AraqEXetoC: it should be updated to use nimsuggest which does work
14:42:13tstmWith a quick check.
14:46:58*untitaker joined #nim
15:10:15*jefus__ joined #nim
15:11:07*irrequietus_ joined #nim
15:11:18EXetoCAraq: ok
15:11:29EXetoCycm support? has that been announced anywhere?
15:11:29*gokr quit (Quit: Leaving.)
15:13:01*irrequietus quit (Ping timeout: 264 seconds)
15:13:25*jefus_ quit (Ping timeout: 252 seconds)
15:15:07*jefus__ is now known as jefus
15:17:55*polkm joined #nim
15:19:03EXetoCtstm: there's no code that adds nim support or anything, so I don't know what you mean
15:29:40gmpreussner|worktstm: Sublime with NimLime (https://github.com/Varriount/NimLime/) is my favorite. runs on Windows/Mac/Linux :)
15:30:55*jholland joined #nim
15:35:36Araqgmpreussner|work: does sublime use nimsuggest already?
15:43:31*darkf quit (Quit: Leaving)
15:46:27*ekarlso quit (Quit: WeeChat 0.4.3)
15:51:39gmpreussner|workAraq: i actually don't know. it does offer auto-completion, but that may only be based on previously used words. Variount should know.
15:55:00*Senketsu joined #nim
16:03:33*sampwing joined #nim
16:11:37*gokr joined #nim
16:12:31*irrequietus_ quit ()
16:12:57*irrequietus joined #nim
16:21:25*pafmaf joined #nim
16:25:48EXetoCAraq: "template t(e: expr) = foo(e)" "getAst(t(newIdentNode($genSym()))" that works. I did something wrong yesterday
16:26:01*banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:26:17AraqEXetoC: ok, glad to hear
16:27:14*BitPuffin joined #nim
16:32:32*banister joined #nim
16:32:36*banister quit (Max SendQ exceeded)
16:33:15*BlaXpirit joined #nim
16:35:53*Demon_Fox joined #nim
16:48:42*drewsrem joined #nim
16:56:17*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:59:07*Demon_Fox quit (Quit: Leaving)
16:59:23*Demon_Fox joined #nim
17:08:05*BitPuffin quit (Ping timeout: 265 seconds)
17:15:10*wizard0 joined #nim
17:15:42*Matthias247 joined #nim
17:18:07*wizard0 left #nim (#nim)
17:19:16*HakanD__________ quit (Ping timeout: 250 seconds)
17:20:57*cazov_ is now known as cazov
17:28:30TrustableI have a problem: When I try to compile with app:gui and Windows XP 32bit I get this error: i686-w64-mingw32/bin/ld.exe: cannot find -lgdi32 i686-w64-mingw32/bin/ld.exe: cannot find -lcomdlg32
17:38:20*fizzbooze joined #nim
17:39:10*Strikecarl joined #nim
17:39:27*Strikecarl left #nim (#nim)
17:46:43drewsremI'm struggling to come up with the analogous ast/macro-module code for introducing a new let-identifier/symbol/whatever which gets assigned to a existing symbol, i.e. analogous to "let new_thing = other_thing_in_the_scope", it's a statement-macro that should just insert this at the top, this is what I got so far (which doesn't work ofc) http://ix.io/h7V - may someone give me some basic pointer?
17:51:05*sampwing quit (Ping timeout: 252 seconds)
17:52:12*Trixar_za quit (Quit: ZNC - http://znc.in)
17:53:27*brson joined #nim
18:02:01*fizzbooze quit (Ping timeout: 256 seconds)
18:18:53AraqTrustable: yeah it's a known problem with the "minimal mingw" that we ship. unfortunately
18:19:09Araqyou need to get some real mingw distribution and replace ours with it
18:20:08Araqdrewsrem: what's the problem with this code?
18:21:32drewsremAraq, I'm getting: SIGSEGV: Illegal storage access. (Try to compile with -d:useSysAssert -d:useGcAssert for details.)
18:21:40drewsremWhen I comment those two lines out it works
18:22:10Araqdrewsrem: try devel please
18:22:18Araqif it still doesn't work, report it
18:22:31Araqa compiler crash is a bug, one way or the other
18:22:49drewsremAraq, sorry, devel?
18:22:56drewsremahhhh branch
18:23:01drewsremwill do
18:51:06*sampwing joined #nim
18:53:53Araqdoes anybody happen to know how portable pthread_cond_timedwait is in practice?
18:55:49fowlTrustable, you need real mingw32 or use msvc
18:55:56*dts is now known as dtscode
18:57:27*sampwing quit (Ping timeout: 252 seconds)
18:58:28EXetoCAraq: so, ENOSYS doesn't count?
18:59:59AraqEXetoC: I still cannot read your mind
19:00:36*pafmaf quit (Quit: Verlassend)
19:04:12EXetoCAraq: In practice meaning that "Function not implemented" does not count? ;)
19:05:21AraqEXetoC: well I'm about to use it. it's in posix
19:05:40AraqI can disable this code then for BSD and MacosX and Linux later
19:07:51*jasondotstar quit (Read error: Connection reset by peer)
19:08:24*jasondotstar joined #nim
19:20:11Araq"The problem here is that pthread_cond_timedwait takes absolute time,
19:20:13Araqbut you passed relative timeout.
19:20:14Araqto make pthread_cond_timedwait waike up after you called it, you need
19:20:16Araqto get current time, and then add timeout you need.
19:20:17AraqIn the sampe you provide your pthread_cond_timedwait waikes up before
19:20:19Araqit actually starts."
19:20:20Araqwhat? o.O
19:20:35fowlabsolute time? wtf
19:20:38Araqwho needs an absolute time here?
19:20:56Araqis everything in this "standard" braindead?
19:23:12EXetoCan expr can't be assigned an empty AST node?
19:24:46Araqaha, there is a reason for this: http://hacksoflife.blogspot.de/2006/11/surprise-pthreadcondtimedwait-takes.html
19:24:48EXetoCit would be useful
19:29:16fowlEXetoC, wot
19:29:24fowlcontext?
19:30:16EXetoCfowl: template t(e: expr) = e # possibly expanding to a statement list containing only an empty node
19:31:26AraqEXetoC: what do you pass to 't' for that to happen?
19:32:18EXetoCAraq: an nnkEmpty node
19:32:40Araqhow do you write an nnkEmpty node in Nim code?
19:33:00Araqnote: by that I mean not how to generate one with a macro
19:33:09EXetoCAraq: it's in a macro, and I'm doing getAst(t(args)) once again
19:33:27EXetoCok well that's what I'm doing
19:33:36fowland args is the emptynode?
19:34:03*banister joined #nim
19:34:12EXetoCfowl: it's just an example of what I'm doing, but I'll try to reduce it and see if it still doesn't work
19:34:58fowlEXetoC, even if you can pass an emptynode to a template theres no good use for it from the template
19:43:39*Varriount joined #nim
19:44:11Araqugh await with timeout is such a PITA
19:44:24Araqwb Varriount
19:45:39VarriountAraq: Sorry about the recent lack of activity - I've had quite a large amount of classwork recently.
19:46:09VarriountAlso, I'm going to have to take my builders down today for a bit - I have to do some hardware upgrading.
19:47:48VarriountAraq: On the bright side, I've reduced the amount of disk activity the builder causes by placing the build directories in a ramdisk, saved to the harddrive every 60 minutes.
19:48:51fowlsmart
19:48:53EXetoCfowl: the purpose is to conditionally pass in basically nothing, and then I can just name that parameter varOrNothing rather than having the conditional logic inside the template. I think this improves the readability
19:51:07AraqVarriount: we need to regenerate our minimal mingw installers
19:51:18Araq--app:gui causes missing libs, of course
19:51:37EXetoCI'll just insert an arbitrary node for now
19:54:16*Varriount quit (Ping timeout: 246 seconds)
19:57:33EXetoC"if (system.not|system.not|system.not|system.not|system.not|system.not|...) :tmp.(itertest.empty|itertest.empty|...):" I get output like this when I print the AST. any idea if it has been reported?
19:58:25Araqwell that's not a bug :P
19:58:37Araqbut yes, can be quite annoying
19:59:49EXetoCwhy not? it's arbitrary so can't those duplicates by omitted?
20:00:04fowlAraq, do you know if this can work https://gist.github.com/fowlmouth/48f3340b797c12cb3043#file-n_tmpl-nim
20:00:24AraqEXetoC: it's not arbitrary
20:00:29fowlthe macro version works
20:02:25EXetoCAraq: it just seemed that way since it was repeated 6 times
20:02:58AraqEXetoC: there are 6 system.not operators defined then
20:03:21*pafmaf joined #nim
20:03:24Araqand the dots indicate it's an "open" symlist ...
20:03:44Araqand not a closed one ...
20:04:16EXetoCI just wonder how often the exact number is necessary, but it's no big deal
20:04:21Araqfowl: dunno, but I dislike recursions for iteration
20:05:14Araqfowl: it'd simply create a forEach macro instead
20:06:29EXetoCI'm working on a foreach :p
20:06:49EXetoCbut which relies on userland iterators so it's probably not relevant
20:07:36fowlAraq, this is to imitate a c++ variadic template
20:07:46AraqI noticed
20:07:58AraqC++ requires recursion though. we don't
20:08:26fowla recursive template is clearer than a macro imo
20:08:37*dashed joined #nim
20:10:17*Varriount joined #nim
20:10:26Araqyou only need this one macro: makeStmts(f, list) --> creates f(list[0]); f(list[1])
20:10:36VarriountAraq: Why is there no 'pow' for integers?
20:10:38Araqas a stmt list
20:10:55AraqVarriount: I wrote one and put it in math
20:11:09Araqbut I dunno if I really did that or dreamed it
20:11:22def-there is `^`
20:16:39*drewsrem quit (Quit: Leaving)
20:18:43*Demos joined #nim
20:22:33Araqhey Demos
20:22:41Demosyo
20:22:47Araqwhat's the state of VisualNimrod?
20:23:09DemosNot that good. Needs updating to suggest
20:23:22Demosand I kinda want to redo the build support
20:23:37*Matthias247 quit (Quit: Matthias247)
20:23:39DemosI have not had time to work on it due to school and my job
20:27:19*Sembei quit (Ping timeout: 245 seconds)
20:29:38*pafmaf quit (Quit: Verlassend)
20:31:54Araqbbl
20:33:24*sampwing joined #nim
20:40:34VarriountDemos: Same boat as me then. >_<
21:05:03*mpthrapp quit (Remote host closed the connection)
21:08:44*mpthrapp joined #nim
21:12:45*sampwing quit (Ping timeout: 252 seconds)
21:12:53*mpthrapp quit (Read error: Connection reset by peer)
21:18:37*Varriount quit (Ping timeout: 246 seconds)
21:19:07*fizzbooze joined #nim
21:19:38*pregressive quit ()
21:20:22*banister is now known as banisterfiend
21:20:36*sampwing joined #nim
21:42:19*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
21:43:39*gsingh93 joined #nim
21:49:03*Trustable quit (Remote host closed the connection)
21:56:58fowlwhat is the point of the extensionless files in \.nimble\bin
21:57:07fowl~\.nimble\bin (windows)
22:00:42*flaviu joined #nim
22:01:28BlaXpiritfor some imaginary compatibility
22:01:46BlaXpiritmaybe something can run shell files on windows
22:02:16fowlwhy isnt mklink used for windows NT systems
22:02:44BlaXpiritnobody uses this
22:02:54fowlnobody uses mklink?
22:03:00BlaXpirityes
22:03:19fowli use it all the time
22:03:38BlaXpiritwell sure, on a personal basis maybe people do use it
22:03:52BlaXpiritbut i've never seen it in any automated things like installers
22:04:48fowlwell its only available in vista and later
22:06:53flaviuWindows XP shouldn't be used by anyone anyway
22:07:57fowlthe last place i worked use stolen copies of windows xp.. someone hacked and encrypted their hard drives rofl
22:08:24dom96fowl: for cygwin
22:08:49EXetoCfowl: :E
22:13:16BlaXpirit[:01:44] <BlaXpirit> maybe something can run shell files on windows
22:13:23BlaXpirityay i guessed
22:14:01*banisterfiend quit (Remote host closed the connection)
22:21:02*reem joined #nim
22:21:29*fizzbooze quit (Ping timeout: 252 seconds)
22:21:59EXetoChow do I get the element type of a seq? the thing is, I have a typedesc, not a var
22:22:46BlaXpiritEXetoC, you gotta hope to not need it
22:23:22BlaXpiriti don't think there is an easy way to get element type of seq if you only have typedesc
22:23:44BlaXpiriti tried it once and decided to just also pass the type
22:24:14BlaXpiritpretty sure i asked Arаq back then and he didn't give any way to do this
22:24:50EXetoCyeah it's difficult, at least without traits
22:25:06flaviuIIRC it's possible
22:25:15flaviuLet me see if I have some code laying around
22:26:49BlaXpirityeah, i just wrote bytesToWordsN[uint64, array[2, uint64]](seed)
22:27:02*banister joined #nim
22:28:38fowlsomething like
22:31:28fowlhmm i dunno ._.
22:31:53fowli can do it with getType probably
22:36:42flaviuLooks like I might have imagined writing that code, I can't find anything.
22:37:51fowli have a solution but it segfaults :p https://gist.github.com/fowlmouth/c538cb5a9a0a1140ef6d
22:37:56EXetoCAnd then there's this issue: "got typedesc[T] but expected one of: elemType(T: typedesc[seq])", but another approach came to mind
22:39:41EXetoC(userland iterator interface without traits) "proc map[T, U](x: T, op: proc(elem: elemType(T)): U): seq[U]"
22:40:03fowlEXetoC, try type(x[0]) there
22:43:02*reem quit (Remote host closed the connection)
22:43:28EXetoCfowl: nope, can't do that. there's type(T()[0]), but that does not work for sequences
22:44:47*reem joined #nim
22:45:51*fizzbooze joined #nim
22:49:26*reem quit (Remote host closed the connection)
22:49:34BlaXpiritwell maybe it should work
22:49:56EXetoCbut it looks for "[](T, int)"
22:50:15BlaXpiritthe actual problem is that T() can't be created
22:50:26BlaXpiritfor builtin types
22:50:29BlaXpiritetf
22:51:07EXetoCright
22:51:14BlaXpirit.eval import typetraits; type T = seq[int]; var t: T; echo type(t[0]).name
22:51:16MimbusBlaXpirit: eval.nim(6, 15) Error: type mismatch: got (int)
22:51:21BlaXpiritwut it works for me
22:51:40BlaXpiritold devel?
22:53:11*a5i quit (Quit: Connection closed for inactivity)
22:53:35*sampwing quit (Ping timeout: 252 seconds)
22:53:47BlaXpiritwell definitely not latest
22:53:50BlaXpiritsrsly, try this out, EXetoC
22:54:09BlaXpiritsure, the huge downside is you do actually need to create a var
22:54:52*reem joined #nim
22:57:21BlaXpiritaha. Error: internal error: cannot generate VM code for type result[0]
22:57:22*sampwing joined #nim
23:02:32*Mimbus quit (Excess Flood)
23:02:40*Mimbus joined #nim
23:07:59*brson quit (Quit: Lost terminal)
23:08:45*brson joined #nim
23:11:26*filwit joined #nim
23:12:33filwitgokr: will get you the crown today at some point. Hope I didn't miss your talk.
23:12:58gokrSorry, you missed it :)
23:13:02gokrIt was yesterday
23:13:35filwitdamn, sorry about that
23:14:36filwiti am interested to see your talk if it was recorded (and in english)
23:15:40gokrSorry was skyping with Araq
23:15:57gokrNo, its no problem :) But unfortunately it was not taped - and it was in swedish :)
23:16:13gokrAround 50 developers though
23:16:21filwitnice :)
23:16:28filwitdid the talk go well?
23:16:41gokrYeah! I think it did.
23:16:41*Demos quit (Ping timeout: 246 seconds)
23:16:48gokrI wrote a follow up article here: http://goran.krampe.se/2015/03/26/nim-visits-gtug/
23:17:02filwitgreat! answered my next question :)
23:17:11gokrAnd the slides... are here: http://files.krampe.se/3dicc-nim-2015.odp
23:17:38gokrThere is a pdf version there too - but then the movie on one of the slides is a picture instead
23:18:03gokrBut those slides don't have all the code samples, so ... it looks kinda silly. But I showed a lot of code :)
23:18:08gokrIn Aporia
23:18:51gokrSo it was fun - don't know, perhaps someone who was there has sneaked in here? Anyone? :)
23:19:11filwitawesome
23:19:46filwiti'm installing libreOffice to open that
23:19:57filwitthat's great to hear you used Aporia :)
23:20:16fowlsomeone here is swedish iirc
23:20:50EXetoCä
23:20:52fowlEXetoC, im still trying to tackle your problem, i want something like this to work
23:21:00gokrHehe
23:21:12fowltemplate typeOfMember(t:typedesc):expr = static: var x:t; type(x[0])
23:21:13gokrAnd oh, do you know what I just stumbled over on twitter?
23:21:31BlaXpiritfowl, that's what i tried
23:21:40filwitgokr: you didn't happen to use one of my Aporia color themes did you? Your blog colors are on there.
23:21:41BlaXpiritcannot generate VM code
23:21:55fowlBlaXpirit, i get Error: value of type 'typedesc[int]' has to be discarded
23:21:59EXetoCfowl: would you need things like that had traits been working?
23:22:13fowlEXetoC, traits == type classes?
23:22:17filwitgokr: wait, what did you come across on tumblr?
23:22:18gokrJohn Carmack was looking at Nim
23:22:20EXetoCI tried it with static
23:22:25filwitgokr: twitter**
23:22:30EXetoCfowl: you mean, user-defined type classes? :p yep
23:22:32BlaXpiritfowl, bah, maybe static isn't an expression
23:23:23BlaXpiritfowl, it's not gonna work anyway
23:23:32filwitgokr: really? where? I was thinking I had seen that, but that was actually Notch, not Carmack
23:23:52fowlBlaXpirit, this should definitely work but it errors when you return the int sym from the type graph, can get around that but its not ideal: https://gist.github.com/fowlmouth/c538cb5a9a0a1140ef6d
23:23:56filwitwell, nevermind... obviously it's carmacks twitter
23:24:28Araqfowl: can't you just fix compiler bugs instead of hacking around them?
23:24:35gokrhttps://twitter.com/libmn/status/578669744519274497
23:24:51Araqmost of this stuff doesn't require a PhD in type theory, you know
23:25:06fowlAraq, but what is the bug :/
23:25:40BlaXpiritok #nim is a horrible hashtag
23:26:12gokrfilwit: Ha, oh... I used Ekini edit?
23:26:31AraqBlaXpirit: homework for you. say at least 1 nice thing about *anything* in #nim. Note: It doesn't have to be about Nim.
23:27:00gokrHe picked Racket, hmm.
23:27:07BlaXpiritAraq, http://irclogs.nim-lang.org/25-03-2015.html
23:27:31AraqBlaXpirit: I mean. every day. :P
23:28:02AraqI'm a bit concerned about your health. :P
23:28:34BlaXpiritnot sure what you mean
23:29:25gokrNice: https://twitter.com/sepisoad/status/571225635168919553
23:29:26AraqI think you have to go out and enjoy the sun
23:29:32gokrWe should retweeet all these :)
23:29:36filwitgokr: Ekini edit? never heard of that one.
23:30:25*jefus quit (Ping timeout: 264 seconds)
23:31:45*jefus joined #nim
23:34:23*a5i joined #nim
23:35:13flaviugokr: It's an old tweet, and the password manager it mentions has a major security flaw in it.
23:35:29BlaXpirit:|
23:35:34gokrah, sorry
23:35:41BlaXpiritand not a popular guy
23:35:48gokrI am such a twitter noob
23:36:32*BlaXpirit quit (Quit: Quit Konversation)
23:47:30filwitgokr: found a typo in your blog: "Sublime, Emacs and **Nim** all have fairly good support I think"
23:47:56filwitshould be 'Vim'
23:47:57gokrI fixed that i thought
23:48:07filwithmm.. let me refresh
23:48:20filwitstill there
23:49:33filwitnice blog so far, you should post to /r/programming (noticed it was already on /r/nim)
23:51:42gokrNow its Vim. Had forgotten a step
23:53:11*nande joined #nim
23:53:39gokrI think I "lied" about static linking though - its not by default.
23:54:22*polkm quit (Ping timeout: 246 seconds)
23:57:16*TEttinger joined #nim