<< 21-04-2014 >>

00:03:39Araqguys, can you please dom96's new closure macro? we like to showoff it on the news page
00:03:57flaviuIt works for me
00:08:12*xenagi joined #nimrod
00:09:07BitPuffinis there a quick way to test it
00:09:30BitPuffinlike ./cock test closure
00:09:40BitPuffinprobably good if someone (me) tests it on mac
00:09:57Araqthe point is to come up with a test for yourself
00:10:10Araqnot test it whether it works on your particular machine
00:10:19BitPuffinah
00:10:31BitPuffinwas thinking if there was a test in the test suite or something
00:10:40dom96yes, what Araq said.
00:10:49dom96There is a test though: closure/tclosuremacro
00:11:18dom96now what's a cool example showing off closures?
00:11:31BitPuffindom96: quicksort
00:13:53BitPuffinlol can't get the executables to be equal
00:16:27*Demos quit (Ping timeout: 250 seconds)
00:18:13Araqwtf. now both macro docs are empty
00:18:37*psquid quit (Ping timeout: 250 seconds)
00:19:00BitPuffinwut
00:19:15*psquid joined #nimrod
00:21:03BitPuffinis there a way to set global imports in a nimrod.cfg file?
00:21:17BitPuffinbecause it would be nice to enable sugar such as the new closure macro in such a file
00:21:36renesacand then your code won't compile for anybody else?
00:21:41BitPuffinso you'd put that in the project config file
00:21:51Araqit's possible but horrible
00:22:01BitPuffinrenesac: not at all the case if it's in the project config
00:22:16BitPuffinand/or specified in the build system
00:23:29BitPuffinAraq: for most things I agree but in the case of sugar the whole point of it is that during your code flow you can write something faster than you would be able to otherwise and stopping to import the sugar kinda breaks the flow
00:23:30BitPuffinI dunno
00:23:40BitPuffinI'm a bit torn
00:23:47Araqit will be added to system
00:24:12EXetoCBitPuffin: import=x I think (--import:PATH)
00:24:17BitPuffinAraq: ah
00:24:20BitPuffinkewl
00:24:58BitPuffinEXetoC: you mean --import:x ?
00:25:34EXetoCI just copied from the help output
00:25:44BitPuffinah
00:26:00renesacis a centralized compilation cache, that would store precompiled stdlibs, planned?
00:27:10*Demos joined #nimrod
00:27:45*renesac left #nimrod ("Leaving")
00:28:47xenagiAraq, I submitted a pull request for bug #1081. Let me know if it's good enough
00:29:08*renesac joined #nimrod
00:30:40Araqxenagi: not really
00:31:04xenagiwhy not?
00:32:24AraqI think it's more complex than necessary
00:34:59xenagihmm, i suppose some of those cases could be cascaded
00:35:23flaviuCouldn't it be done by just adding the underscore in all cases?
00:35:46xenagiyes
00:35:51xenagishould it?
00:36:16Demosermmmm reserved names ahoy
00:38:11*DAddYE joined #nimrod
00:38:33flaviuAraq: What do you think about appending _ to every name?
00:38:50Araqit's crap.
00:38:57dom96Why _?
00:39:10dom96Append 'ID' if the identifier begins with a number.
00:39:22xenagi_ would not hinder readability of the variable name
00:39:35*Araq hates C's __ASCII_ART__
00:40:01Demosbut Araq names are a scarce resource and we must make sure we never ever conflict
00:40:16Demos:D
00:40:33flaviuWell, the generated code is already less than beautiful, and as dom96 says, any other letter would also work as a prefix
00:41:05xenagiSo just pick some arbitrary letter for all cases?
00:41:47xenagihow about... "NIMVAR_"
00:41:57Araqwhy is `12` a valid identifier in the first place?
00:42:04flaviuxenagi: Some compilers only look at the first 6 chars
00:42:09Araqthat is what we should fix
00:42:17Demosflaviu: get a new compiler
00:42:26xenagioh, well then thats a different issue entirely Araq
00:42:27Araqdom96: I fixed the docgen issue, or rather found a workaround
00:42:30Demosit is not 1960 any more
00:43:03AraqDemos: but but but what if 'memcpy' is broken? autoconf can check for that
00:43:16dom96Araq: pushhh ittt
00:43:17flaviuAraq: Did you see my usecase? ``let `1/2` = 1/2``
00:43:46Araqwe should care about portability to Barely Legal Unix 0.8
00:44:17Araqbut not about portability to windows of course as that lacks a posix-like shell ...
00:45:04Araqflaviu: that's not a use case, that's an academic exercise
00:45:12BitPuffinAraq: isn't powershell sorta kinda but not really posixy
00:45:27AraqBitPuffin: like your mum.
00:45:32Araqnow see what you've done
00:45:37flaviuWhat if someone wants to use nimrod on a micro-controller with a crappy compiler or something?
00:45:37flaviuAraq: I've used that syntax before for some optimizations
00:45:45BitPuffinMy mom is fully POSIX compliant
00:46:01xenagilol
00:46:02BitPuffinAraq: carefull, I might ban you from uh.. my let's play?? I can't ban you from anything
00:46:09BitPuffin:/
00:46:31BitPuffinI'm gonna have to create a kickass multiplayer RTS just so that I can ban you from it
00:46:33BitPuffinXD
00:46:54xenagiflaviu, like what use cases?
00:49:14*Demos quit (Ping timeout: 240 seconds)
00:49:19flaviuxenagi: Manual subexpression elimination
00:51:28*xenagi quit (Quit: Leaving)
00:59:57*xenagi joined #nimrod
01:03:45flaviugrep -r 'ord(\'A\')' ./compiler/ | wc -l
01:03:45flaviu>> 18
01:07:52Araqso? afraid ord('A') changes its value?
01:11:46flaviuSorry, I should have elaborated. Half of those are basically toLower reimplemented.
01:11:58Araqofc
01:12:17Araqold pascal neither had 'inline' nor macros
01:14:16VarriountI'm back
01:16:00renesac<pengvado> windows is posix compliant
01:16:01renesac<pengvado> every single posix function returns ENOTIMPLEMENTED, which is one complying implementation :)
01:16:02dom96Varriount: Good, I was starting to get worried you may sleep until tomorrow :P
01:16:24EXetoC"var cvar = c; put(cvar, T)" matches correctly, so will a rewrite for put(var c, T) be fine?
01:16:33Varriountdom96: It was tempting.
01:16:54AraqEXetoC: no that would be a hack
01:22:42Araqargh
01:22:56Araqproc pushFrame(s: PFrame) {.compilerRtl, inl, exportc: "nimFrame".} =
01:22:57Araq # XXX only for backwards compatibility
01:22:59Araq ...
01:23:01Araqproc nimFrame(s: PFrame) {.compilerRtl, inl, exportc: "nimFrame".} =
01:23:02Araq ...
01:23:04Araqspot the problem
01:25:37dom96same exportc name?
01:25:44Araqyeah
01:32:34*DAddYE quit ()
01:39:48*Demos joined #nimrod
01:41:14*Demos quit (Read error: Connection reset by peer)
01:45:16NimBotAraq/Nimrod devel 042ffed Araq [+0 ±2 -0]: some progress for #1082
01:45:16NimBotAraq/Nimrod devel a868575 Araq [+0 ±2 -0]: doc2 likes future.nim now
01:45:16NimBotAraq/Nimrod devel 667b7d8 Araq [+0 ±1 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel
01:45:16NimBotAraq/Nimrod devel b15f323 Araq [+0 ±1 -0]: updated news.txt
01:45:16NimBot1 more commits.
01:48:49dom96Araq: oh, you should add a link to the downloads page in the news
01:52:09Araqwell I'm done
01:52:35AraqI'll do the rest "tomorrow" night
01:52:55dom96bah
01:53:01dom96So I stayed up for nothing?
01:53:17Araqyou helped a great deal?
01:53:19VarriountWhat branch do I use when generating installers?
01:53:59AraqVarriount: master but I haven't merged yet. should I?
01:54:06VarriountIt's up to you.
01:54:20flaviuAraq: Can you do a quick comment on https://github.com/Araq/Nimrod/pull/1113 before going to bed?
01:55:58dom96Varriount: Practice generating on devel for now
01:56:08dom96We'll probably make some other changes tomorrow
01:57:01VarriountPlus the build bots.
01:58:00NimBotAraq/Nimrod devel e74868f flaviut [+0 ±1 -1]: Delete dead file
01:58:00NimBotAraq/Nimrod devel fb91efd flaviut [+0 ±0 -1]: charsets is never used
01:58:00NimBotAraq/Nimrod devel d0f0076 flaviut [+0 ±0 -1]: parsecfg is never used and is also part of the stdlib
01:58:00NimBotAraq/Nimrod devel 41f82fb Andreas Rumpf [+0 ±1 -3]: Merge pull request #1113 from flaviut/del_dead... 2 more lines
01:58:15Araqflaviu: let's see what it breaks
01:58:39AraqVarriount: is the babel integration with the windows installer done?
01:58:42flaviuI don't think it breaks anything, it compiles for me. Grep turned up no usages either
01:59:03VarriountAraq: Yes.
01:59:09Araqflaviu: but only nimgrep can grep nim
01:59:29AraqVarriount: awesome!
01:59:39Araqhow come I missed your PR?
01:59:47VarriountWhat PR?
02:00:14Araqcompiler/nimrod.ini patches?
02:02:50Araqanyway, good night
02:03:02dom96same, bye
02:05:39VarriountGoodnight
02:08:10*Jesin joined #nimrod
02:22:35*xenagi quit (Quit: Leaving)
02:23:00fowlBitPuffin, still around?
02:26:00reactormonkAraq, oh, sweet
02:27:50*ehaliewicz quit (Remote host closed the connection)
02:28:17BitPuffinfowl: no I'm dead
02:29:13BitPuffinfowl: are you asking if I'm around in the irc channel in general or if I'm awake lol
02:30:10fowljust making sure u still exist
02:33:01BitPuffinfowl: ah, I do, thanks. Do you?
02:33:54fowlall i'm sure of is that from my perspective, i might exist, and i cant even be sure of that
02:35:25BitPuffinhmm
02:35:30BitPuffinnow you are making me think the same thing
02:35:36BitPuffinI retract my previous reply
02:35:41BitPuffinit is now "maybe"
02:39:56fowlim thinking about making nake read the first line of a nakefile for compiler options
02:40:32BitPuffininteresting
02:40:58fowli have a task that downloads game data, need -d:ssl for it
02:41:08fowlbtw BitPuffin u up for compiling more things for osx?
02:43:18flaviuDoes dom do the build farm?
02:43:33reactormonkflaviu, yup
02:45:30BitPuffinfowl: hmm
02:45:37BitPuffinI didn't really compile anything last time
02:45:40BitPuffinlol
02:45:43BitPuffinI dunno
02:45:53BitPuffinas long as it doesn't require me to edit source files then maybe
03:01:27*q66 quit (Quit: Leaving)
03:01:46fowlBitPuffin, libenet and chipmunk? :>
03:07:35BitPuffinfowl: are they big?
03:07:42BitPuffinwill I need to modify allegro?
03:14:30*BitPuffi1 joined #nimrod
03:15:11fowlBitPuffi1, no and no
03:15:39*BitPuffin quit (Read error: Connection reset by peer)
03:17:02fowlBitPuffi1, http://enet.bespin.org http://chipmunk-physics.net
03:18:51BitPuffi1fowl: installing through brew :P
03:19:50fowlsfml is nice, they have binaries for the lame platforms
03:20:27BitPuffi1installed
03:22:38*Varriount bangs head repeatedly on desk
03:23:00VarriountDoes nimrod use some sort of compiler-specific stuff for exception handling?
03:23:21flaviuVarriount: The VM does fancy stuff for exceptions
03:23:32fowlVarriount, setjmp/longjmp in c
03:23:37VarriountHm.
03:24:04Varriountgcc is linking a C++ exception handling dll to nimrtl.dll, which is causing a couple tests to fail.
03:24:34*flaviu quit (Quit: Night)
03:24:42*psquid quit (Ping timeout: 240 seconds)
03:24:59*psquid joined #nimrod
03:25:01VarriountAlso, did someone spiff up the tester? I could swear that, until a week or so ago, it didn't have colored output.
03:31:07fowlVarriount, iirc c++ exceptions are used in cpp mode
03:31:45VarriountIs the runtime library, by default, compiled in C++ mode?
03:33:28fowlno
03:33:39fowl?
03:45:43SkrylarVarriount: unittest module does that
03:45:52Skrylarthough i've stopped using unittest and went to doasserts >_>
03:46:45Skrylarfowl: is htere a reason to care about chimpmonk instead of box2d?
03:47:24fowlthere no c interface for box2d
03:47:40fowlalso chipmunk is just as good
03:48:09Skrylari have an automatic distrust of pro versions :\
03:48:32fowlpro version is the obj c interface for ios
03:48:41Skrylardon't ask me what a better model is, i just don't trust people who do it
03:48:45Skrylarno, it also includes auto-boundaries
03:48:48fowltax the rich
03:49:01Skrylari just checked their feature matrix and its one of those "can you trust whatever improvements to not be deemed 'pro' or not" situations
03:49:07Skrylaranyway, not my project so i don't care
03:49:29fowlSkrylar, id write my own auto boundary anyway,
03:49:57Skrylari'm tempted to hook the winapi for rendering font glyphs
03:50:03Skrylarmostly because it sheds a dependency on one platform
03:53:21BitPuffi1fowl: so gief the oneliner? :P
04:02:15Skrylari'm feeling omnicidal. ._.
04:03:15BitPuffi1http://youtu.be/o4nTkMNVVdQ
04:03:59BitPuffi1taht's what comes to mind when you say omnicidal
04:08:44fowlBitPuffi1, for what
04:09:39BitPuffi1fowl: you wanted me to run something?
04:09:52BitPuffi1or did I install chipmunk and shit for nothing
04:09:57fowldid u fix your allegro
04:10:27fowloh can you send me the binaries? i will put them with the babel pkg
04:12:13BitPuffi1no
04:12:21BitPuffi1I did naught
04:12:48fowlill take a look at updating this week
04:13:07fowlto allegro 5.1
04:14:08BitPuffi1ahh
04:14:09BitPuffi1do et
04:14:13BitPuffi1nyeaaaahh!
04:15:26SkrylarBitPuffi1: no, omni-cide is "to kill everything"
04:15:53Skrylarhomicidal is specifically a person
04:16:21fowlBitPuffi1, ok but im probably going to use a -d because it sounds easier
04:19:21Skrylari'll just keep using sdl2
04:19:54fowlthey have similar apis anyways
04:20:00Skrylaryeah but sdl is pretty stable
04:20:27Skrylarnow i get to deal with getting font glyphs on a sprite sheet
04:20:38Skrylarbeing able to actually write GUI code is near, the yaks are almost all bald \o/
04:20:52fowlwhy do you have to go so low level
04:20:55fowluse cairo or something
04:21:04Skrylarcairo doesn't do fonts
04:21:12fowlwell use something that does
04:21:36Skrylari already wrote a hashtable cache and i have some unicrap compatible formatting around here somewhere
04:21:47Skrylarcompared to two months ago, just stamping glyphs on a texture atlas is easy
04:27:02fowli feel ya
04:27:40fowli think about quitting the cigarettes all the time but then im like why both, i already started
04:27:52fowlwhy botehr*
04:31:03Skrylari donno, i could go for some heavy psychotropics
04:41:24BitPuffi1fowl, Skrylar: allegro does fonts
04:41:27BitPuffi1justasayin
04:57:17renesacSkrylar, you will handle kerning too?
05:36:16Skrylarrenesac: maybe, donno
05:37:40Skrylarright now programming is the last thing on my mind
05:42:35renesackerning seems a pretty hard thing... last time I saw OpenOffice had many troubles with it...
05:42:54renesacso you must basically reimplement freetype?
05:44:40Skrylarno?
05:44:43Skrylarfreetype is a rasterizer
05:44:47Skrylarit doesn't do layout
05:44:48renesacwell, I think it isn't the right time to make those questions
05:45:12Skrylarif there was anything i was 'reimplementing' it would be pango
05:45:12renesaclayout isn't an orthogonal thing to rasterization?
05:45:23renesacso you aren't doing font rasterization?
05:45:25Skrylarno
05:45:40Skrylarwindows will do it for you, osx has a system for it, and theres freetype
05:45:50Skrylarlayout is a bit more problematic
05:46:00Skrylaras far as diacritic marks, kerning and all that shit
05:47:02renesacok, so individual characters are rendered by an external library, and you place them with your code
05:48:06renesacthat makes sense, but still, you will certainly have to work on kerning latter... but it is not a critical component to have a GUI runing at least
06:10:17Skrylari'll worry about it some time when i give a fuck; right now i'm dealing with other problems
06:30:55*noam joined #nimrod
06:39:39fowlgn
07:12:24*OrionPK quit (Remote host closed the connection)
08:09:41NimBotnimrod-code/csources master 85caad2 Araq [+0 ±91 -0]: csources for version 0.9.4
08:10:54NimBotAraq/Nimrod devel d22506c Araq [+0 ±1 -0]: fixes #847
08:10:54NimBotAraq/Nimrod devel 80e377b Araq [+0 ±1 -0]: manual.txt updates
08:10:54NimBotAraq/Nimrod devel 7a55701 Araq [+0 ±3 -0]: version 0.9.4
08:10:54NimBotAraq/Nimrod devel 687a1b7 Araq [+0 ±1 -3]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel
08:20:35NimBotAraq/Nimrod master 5da463e Jason Livesay [+0 ±1 -0]: Redis: optional pipelining and better tested transactions
08:20:35NimBotAraq/Nimrod master 9a728b1 Jason Livesay [+0 ±1 -0]: Don't need ref string; use PPipeline instead of ref TPipeline
08:20:35NimBotAraq/Nimrod master 3f3014f flaviut [+0 ±1 -0]: Koch deletes the .gitignore while cleaning
08:20:35NimBotAraq/Nimrod master be02aae Jason Livesay [+0 ±1 -0]: factor per comments
08:20:35NimBot102 more commits.
08:27:37Araqjust fyi I'll be back tonight
08:27:50Araqplease test the new release!
08:27:57Araqbbl
08:42:11*Matthias247 joined #nimrod
10:17:06*Matthias247 quit (Read error: Connection reset by peer)
11:35:48*uvelichitel joined #nimrod
12:00:16*io2 joined #nimrod
12:00:59*BitPuffi1 quit (Ping timeout: 252 seconds)
12:05:38Varriountdom96:
12:05:40Varriount<datadigger> Varriount: Why no 64-bit? Well, there is hardly any audience for it, 32bit is fine for almost all applications.
12:06:00VarriountIs what I was told when asking about a 64 bit sqlite binary in #sqlite
12:09:15dom96I can't say I disagree with him.
12:12:08*q66 joined #nimrod
12:12:08*q66 quit (Changing host)
12:12:08*q66 joined #nimrod
12:13:52VarriountYes, but how are people ever going to adopt 64 bit if there's no support for it?
12:14:07VarriountStupid chicken-and-egg problems...
12:14:14EXetoCmaybe that's the case for some apps, but for db's, really?
12:15:34VarriountEXetoC: What do you consider a "binary"?
12:18:47EXetoCanything that contains executable code, I guess. does the memory cap apply in this case? because you want as much as possible to reside in RAM in this case I'd imagine
12:21:54VarriountEXetoC: Someone on #sqlite was confused because I considered the compiled, distributable package of sqlite.dll and it's files hosted on sqlite's website to be a "binary"
12:23:27VarriountI mean, I guess the proper term should have been something like a "binary package" or "the compiled and packaged dll", however I've always thought that, colloquially, a "binary" could refer to the ready and packaged distributable version of a computer program or library.
12:24:01EXetoCok
12:24:13EXetoCdom96: should "echo(@[1, 2, 3, 4].map((x) => x * 2))" work?
12:24:43EXetoCwait
12:25:28dom96I think so
12:25:33dom96What's the error?
12:26:51EXetoCdom96: "test.nim(20, 6) Error: type mismatch: got (seq[int], proc (GenericParam): auto) but expected one of: system.map(data: var openarray[T], op: proc (var T){.closure.}) system.map(data: openarray[T], op: proc (T): S{.closure.}): seq[S]"
12:27:17VarriountI bet it's the {.closure.} pragma
12:27:30dom96oh, you need to annotate the x type
12:27:39dom96(x: int) => x * 2
12:28:26EXetoCyes, and I can not annotate the return type at the same time
12:28:56dom96you can
12:29:02dom96But you shouldn't need to
12:29:17EXetoCit doesn't work in this case
12:29:48EXetoCyou shouldn't have to annotate anything ideally, but it's an improvement either way. great work
12:30:39dom96yeah, better type inference will hopefully happen
12:33:37EXetoCdamn I got 19 open issues now ^_^
12:34:25VarriountGotta report them all!
12:42:31*Araq0 joined #nimrod
12:42:52Araq0Boo
12:43:00EXetoChi
12:43:29VarriountAraq0: Ah!
12:43:34*Varriount runs and hides
12:43:44Araq0Did i break everything?
12:43:57dom96Araq0: You didn't commit all the C sources
12:44:26EXetoC"release" as in master?
12:44:27Araq0I did commit am
12:44:51dom96Araq0: Yeah, and you only committed the files that changed. You forgot to add the new files.
12:44:59VarriountAraq0: I got gcc to stop crashing... now collect2 crashes. >_<
12:45:05Araq0Argh
12:46:05Araq0Dom96 did you fix it
12:46:22dom96not yet
12:46:30dom96Just finished watching GoT :P
12:46:41Araq0Lol
12:47:42Araq0dom96: pm me
12:57:16*BitPuffi1 joined #nimrod
12:59:36EXetoCBitPuffi1: morning
13:02:24*BitPuffi1 quit (Ping timeout: 276 seconds)
13:02:45Araq0Is it too late to move spawn to its own module?
13:06:18EXetoChasn't it been used in only a couple of places? I can deal with the refactoring if you want
13:07:15Araq0It is completely new. So no
13:12:31EXetoCyou might've missed the word 'only'. anyway, are you reluctant towards pushing more stuff to master? and is master the so-called "release"?
13:12:49EXetoCbut I'll have to wait for the C sources issue to be fixed before I can try it
13:13:48Araq0It is a release
13:14:17Araq0No further pushes to master
13:15:05EXetoCright
13:17:38EXetoCso, let's deal with that after the release then? I wonder if module migrations can be compiler-assisted. the fact that system is imported implicitly might complicate things though
13:20:29Araq0Oh well it is not important
13:20:47EXetoCI think I'm overcomplicating this. it might be fairly simple
13:22:22EXetoCjust invoke a pragma in the involved modules
13:22:33NimBotnimrod-code/csources master e6e8462 Dominik Picheta [+39 ±7 -0]: Fixes #2.
13:22:46Araq0Bbl
13:22:48dom96EXetoC: Can you test the new c sources please?
13:23:15EXetoCon master?
13:23:52dom96that's irrelevant
13:24:23*Araq0 quit (Quit: Bye)
13:24:59EXetoCI might as well if the release needs to be tested
13:25:16dom96master and devel are currently the same
13:26:00EXetoCI will just to be safe
13:28:17dom96ok, so 0.9.4 is tagged
13:28:17EXetoCok there's a tag now
13:28:22EXetoC:p
13:28:25*dom96 waits patiently for Varriount to show up
13:29:05EXetoCbuild.sh needs the executable flag again
13:29:23dom96~1400 commits https://github.com/Araq/Nimrod/compare/v0.9.2...v0.9.4
13:29:23dom96woo
13:31:12*[1]Endy joined #nimrod
13:31:57EXetoCaporia error * 100: "Could not restore file from session.." :-)
13:32:48EXetoCwhat are some other programs that I can try? my rather featureless OpenGL program works
13:33:35dom96cool, you use aporia?
13:33:47*darkf quit (Quit: Leaving)
13:34:07EXetoCno but I wanted to test some apps with the release build
13:34:12dom96oh
13:34:18dom96try nimkernel :P
13:34:30dom96jester needs fixing I think
13:34:33dom96you could fix it and make a PR
13:34:51dom96do the C sources work now though?
13:35:02*wan quit (Quit: Lost terminal)
13:35:49EXetoCyes. I pulled in the csources directory and then followed the instructions
13:36:03dom96good
13:43:55EXetoCdom96: is there a lack of i686 resources since i586 is used? or is it just easier to target?
13:45:21dom96I have no idea.
13:46:02EXetoCI mean with regards to nimkernel
13:46:45*OrionPK joined #nimrod
13:47:44dom96EXetoC: oh, er, can't even remember lol. I think it is easier. The OSDev wiki might have more info.
13:48:15EXetoCI assume it doesn't conflict with the gcc package
13:48:17EXetoCok
13:49:00dom96EXetoC: are you on linux 64bit?
13:49:26EXetoCnevermind. I didn't consider /usr/local
13:49:28EXetoCyes
13:49:49dom96ahh, nvm
13:49:50dom96brb
13:55:09*xenagi joined #nimrod
13:59:14EXetoCdom96: "/tmp/cc5lsXUC.s:221: Error: invalid instruction suffix for `push'"
14:01:38EXetoCI think that out-of-bounds error is triggered at compile-time
14:02:10*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
14:16:21*BitPuffi1 joined #nimrod
14:21:08*BitPuffi1 quit (Ping timeout: 252 seconds)
14:30:13dom96EXetoC: Yeah, the compiler now catches the out-of-bounds error at compile-time
14:30:25dom96never seen that invalid instruction error before though
14:31:00*Matthias247 joined #nimrod
14:32:17dom96EXetoC: that happens for nimkernel right?
14:32:44EXetoCdom96: yes
14:45:33dom96EXetoC: wrong assembler perhaps
14:50:46*wan joined #nimrod
15:20:28*bastian_ joined #nimrod
15:21:26bastian_congrats on releasing 0.9.4!
15:23:22dom96bastian_: thanks!
15:23:39dom96Still working on getting the binaries on the website + some other adjustments
15:30:09renesacdom96, what about those name changes on the docs tab that we talked about?
15:30:38renesacI should have done a pull request yesterday...
15:33:34dom96renesac: I can still do that
15:33:51dom96renesac: make a PR now
15:34:34renesacok
15:37:28Varriountdom96: Installers are being uploaded. I'll be uploading the zip files in a minute
15:39:22renesacthe Source code filters and Term rewriting macro should be inside the manual
15:39:28renesacbut I will not mess with it now
15:39:38renesacshould I send a pull request to devel or master?
15:40:12dom96devel
15:41:38dom96Varriount: let me know when they upload
15:42:23renesachttps://github.com/Araq/Nimrod/pull/1129
15:43:22renesac"Compiler Options" was the other alternative I said here
15:43:23NimBotAraq/Nimrod devel c1c889b ReneSac [+0 ±1 -0]: Rearrangements on the webpage's docs tab.
15:43:23NimBotAraq/Nimrod devel e6675bd Dominik Picheta [+0 ±1 -0]: Merge pull request #1129 from ReneSac/devel... 2 more lines
15:43:28dom96renesac: great, thanks
15:44:17Varriountdom96: Installers are done uploading
15:44:41Varriountdom96: What kinds of archives should I make? 7zip, zip, tar.gz?
15:44:50dom96Varriount: zip
15:44:55renesacI think it was a zip last time
15:49:58dom96Varriount: So "slim" is the "gamera" edition?
15:50:07VarriountI guess.
15:50:18VarriountIt's the version without the bundled mingw
15:50:27dom96Varriount: According to the old downloads page the gamera edition includes a minimal gcc
15:50:45VarriountI wasn't able to get the trimgcc executable working.
15:51:47Varriountdom96: Or rather, the trimgcc executable was a bit too... effective. It deleted the entire gcc folder, or threw an error.
15:52:00dom96lol
15:52:02dom96oh well
15:52:17dom96What does 'full' include?
15:52:29Varriountthe mingw distribution
15:52:52dom96what about babel?
15:53:11VarriountIncluded in everything
15:53:30VarriountAs are the dlls.
15:53:34dom96ahh, even in slim?
15:53:46VarriountYeah. It doesn't contribute greatly to file size.
15:53:51dom96good
15:54:06dom96Installing slim works
15:54:08dom96Trying full now
15:55:29dom96hrm, the rendered docs are missing
15:55:51VarriountI didn't know that I was supposed to generate them.
15:56:07VarriountTell me what commands need to be run, and I'll do it.
15:56:38dom96well, docgen on Windows is a bit broken
15:57:10dom96where is babel? I don't see it in bin/?
15:57:19VarriountThe exe should be in there.
15:57:26dom96it's not
15:57:32VarriountGah.
15:57:52Varriountdom96: Give me a bit to add some stuff to my batch files.
15:58:06dom96ok, I need to get you the rendered docs anyway
15:58:23dom96Are you sure you can't slim down mingw?
15:58:30dom96The whole thing is 80MB
15:58:42dom96And it seems to include ada and fortran compilers
15:59:06dom96It also includes python for some reason...
15:59:53Varriountdom96: I'll try.
16:00:32*BitPuffi1 joined #nimrod
16:00:43Varriountdom96: It includes python headers and dll.
16:01:11renesacand how big the full version would be compressed with 7zip LZMA2 Ultra?
16:01:56Varriountrenesac: Lemme see
16:02:08*Demos joined #nimrod
16:03:21dom96Varriount: well, the old one seems to include full gcc too
16:03:33dom96Probably safer to just leave it
16:04:16dom96Varriount: oh, you need to change the config
16:04:22dom96before you build the installers too
16:04:28dom96uncomment line 88
16:05:58dom96Varriount: please try to make slim as it was in the last release though
16:06:43dom96Varriount: Install this and see what the dist folder contains: http://nimrod-lang.org/download/nimrod_gamera_0.9.2.exe
16:07:31Varriountdom96: I've /tried/
16:08:33dom96Varriount: ok, here is what we'll do then. Make a slim installer with no mingw, i'll add it to the download page and then if Araq wants he can help you create a "gamera" edition with a minimal mingw.
16:11:03Demosyay! I just built nimrod using vcc
16:11:52Demosalso, it looks like devel is versioned at 0.9.4 instead of 0.9.5
16:13:04dom96we have bigger fish to fry right now :P
16:14:26*q66 quit (Ping timeout: 252 seconds)
16:14:43*vbtt joined #nimrod
16:15:23dom96You guys think .tar.gz is more appropriate for Linux?
16:15:33VarriountYes.
16:15:35vbttHello friends
16:15:44VarriountHi vbtt.
16:15:51vbtt congrats on the new release
16:16:15Varriountvbtt: Well, atm, we are generating the releases.
16:16:28dom96I wish Araq didn't upload the new website...
16:16:33vbtt ok. I saw it on the website news
16:18:21vbttthe async stuff looks cool
16:18:57dom96vbtt: I'm glad you think so :)
16:19:22vbtt does the calling thread just sleep in await?
16:20:20dom96no, it yields
16:20:39dom96it's all implemented using iterators
16:21:39dom96yielding gives back control to the dispatcher which is basically an event loop
16:21:51vbttSo another async proc can run while one async proc is waiting? Using the same thread?
16:22:19dom96yep
16:22:27vbttcos that's awesome!
16:22:56vbttit's kind of like co routines then
16:23:03dom96yep
16:23:12dom96The iterators are pretty much coroutines
16:23:38vbtt except the have to be tagged with the async pragma
16:24:58BitPuffi1dom96: tar.gz/bz2/xz either of those is fine
16:25:08dom96BitPuffi1: oh cool, you're here.
16:25:16dom96BitPuffi1: Wanna provide me with mac binaries?
16:25:21BitPuffi1whereelse would I be
16:25:22BitPuffi1sure
16:25:26dom96cool
16:26:12BitPuffi1have we fixed enough bugs to release?
16:26:32BitPuffi1slash Araq
16:26:34dom96who knows :P
16:26:42BitPuffi1>_>
16:26:53*q66 joined #nimrod
16:26:53*q66 quit (Changing host)
16:26:54*q66 joined #nimrod
16:27:06dom96gah, i'm copying binaries around. I hope I don't mix up the platforms for some of them...
16:27:16BitPuffi1lol
16:27:28BitPuffi1I think there is commands to tell which platform they are for
16:27:30BitPuffi1not sre
16:27:34dom96yeah
16:27:35dom96file
16:27:47BitPuffi1yeah I was thinking of file
16:27:53BitPuffi1was wondering if it knew about binaries tho
16:28:41dom96I wonder how many people out there actually use ppc64
16:29:55BitPuffi1I do, don't you?
16:29:58BitPuffi1thought everybody did
16:30:12dom96nah, i'm stuck on arm
16:30:19dom96hrm
16:30:25BitPuffi1since when do you use arm
16:30:33BitPuffi1other than on phone
16:30:37dom96Can I be bothered creating an arm binary
16:30:47Varriountdom96: https://gist.github.com/Varriount/11147952
16:31:01VarriountImagine if I had to do that by hand.
16:31:32dom96Varriount: nice
16:31:45dom96robocopy sounds cool
16:31:49BitPuffi1is koch install fixed yet btw?
16:31:51*brihat left #nimrod (#nimrod)
16:31:59dom96BitPuffi1: was it broken?
16:32:10BitPuffi1yes it was extremely broken
16:32:23BitPuffi1./koch install /usr/local
16:32:30BitPuffi1will create /usr/local/nimrod
16:32:33Varriountdom96: It breaks the Windows tradition of boring names.
16:32:33BitPuffi1it should work like prefix
16:32:43dom96oh shit
16:32:46Varriountdom96: It stands for Robust File Copy
16:33:01dom96We should have changed where it puts configs in /etc/
16:33:23dom96BitPuffi1: Is there an issue on github for this?
16:33:38BitPuffi1I don't know, it's been around since I started using nimrod
16:33:48BitPuffi1Demos is aware of it aswell
16:33:55Varriountdom96: What about the docs?
16:33:57BitPuffi1we were talking about it on the VNUG the other day
16:34:04BitPuffi1so there is a good reason to be in there ;)
16:34:28dom96Varriount: working on it
16:34:31EXetoCas well
16:35:49Varriountdom96: Personally, if it was up to me, I would just have a link to Mingw-w64 on the downloads page, and do without the included distribution altogether. But w/e
16:36:38dom96Varriount: http://picheta.me/private/docs.zip
16:36:45dom96Varriount: The lower the barrier to entry the better.
16:36:54dom96Hunting down dependencies is not fun.
16:37:18Demoswow, so asismp has a "boost workaround mode" if you do not want to use boost, I tried it and it will not compile because they forgot to include a header that happens to be included by boost
16:38:04*shodan45 joined #nimrod
16:38:22BitPuffi1dom96: I guess we'll have to make the command like ./koch install -d:installConfig /usr/local
16:38:34BitPuffi1since maybe you are installing it in ~/nimrod or something
16:38:39dom96BitPuffi1: Where are we with those binaries?
16:38:43BitPuffi1then it would be weird if it installed the config in /etc
16:38:47BitPuffi1dom96: ?
16:38:49dom96BitPuffi1: Could I also get c2nim, babel and nimgrep please?
16:38:56BitPuffi1ah
16:38:58BitPuffi1I'm eating breakfast
16:39:04dom96at 6pm?
16:39:07BitPuffi1and I didn't know you wanted me to start
16:39:13dom96you're living on the edge bro
16:39:21BitPuffi1it's actualy 6:39 pm get it right
16:39:32EXetoCburgers probably
16:39:35BitPuffi1well you know me
16:39:38BitPuffi1I'm innovative
16:41:47BitPuffi1dom96: which branch should I build from
16:42:05dom96BitPuffi1: devel or master, it doesn't matter, they're both the same
16:42:27BitPuffi1I see
16:43:27BitPuffi1does it matter if I can't get the executables to be equal dom96?
16:43:32dom96no
16:43:44BitPuffi1why does that happen btw
16:43:46dom96but test them to see if they can compile something :P
16:43:48BitPuffi1what is it supposed to mean
16:43:55BitPuffi1ah
16:43:57BitPuffi1got them equal
16:44:04dom96it's likely because it includes the compile time in the binary
16:44:05BitPuffi1dom96: well they can build the compiler
16:44:07BitPuffi1:P
16:44:21dom96Sometimes that gets optimised away, sometimes not or something
16:44:29dom96BitPuffi1: good
16:46:59*vbtt quit (Quit: Bye)
16:47:06VarriountThe executables are supposed to be equal for safety and security
16:47:50bastian_if t is a TTable[int, seq[int]]: any shorthand for doing add(t[a], b)? atm. i'm using: var x = t[a]; add(x, b); t[a] = x
16:47:55VarriountFor safety, to catch any malformed executable code, and for security, to prevent polymorphic additions.
16:48:37dom96bastian_: t.mget(a).add(b)
16:48:49BitPuffi1dom96: what about nimweb and nimrepl etc
16:48:57dom96BitPuffi1: don't need them
16:49:14BitPuffi1dom96: I'll just babel install babel and copy the binary
16:49:22bastian_dom96: cool, thanks, didn't see that one
16:49:33renesacVarriount, you should use maximum compression options in your script, not the default ones
16:49:35renesac:P
16:49:52BitPuffi1ls rel
16:49:54BitPuffi1babel c2nim nimgrep nimrod
16:49:56BitPuffi1dom96: misssing anything ?
16:50:14renesacfor zip and 7z it can only make the decompression faster
16:50:14dom96nope
16:50:59renesacbut in 7z you just have to take care of the size of the dictionary
16:51:19renesacbut everybody has at least 64mb free ram nowadays
16:51:59Varriountrenesac: Give me the correct command line then.
16:55:00renesacI think you need to add -mx9 to the 7z command line
16:55:03BitPuffi1dom96: sending on skype
16:55:03renesachttp://sevenzip.sourceforge.jp/chm/cmdline/switches/method.htm
16:55:10dom96BitPuffi1: wait
16:55:13BitPuffi1dom96: you should re-package it though to be consistent with the other releases
16:55:25dom96BitPuffi1: of course
16:55:40BitPuffi1well
16:55:42BitPuffi1you'd have to
16:55:46BitPuffi1to include the stdlib and stuff :P
16:55:49BitPuffi1which I don't
16:56:04BitPuffi1don't know why I sent them as a zip though, could have done a tar jizz
16:56:20dom96what's preferred on mac, tar or zip or something else?
16:57:29dom96BitPuffi1: what's your platform?
16:58:09xenagiPDP :P
16:58:53dom96xenagi: PDP?
16:59:04dom96BitPuffi1: And by platform I mean CPU.
16:59:25xenagidom96, http://en.wikipedia.org/wiki/Pdp8
16:59:30BitPuffi1dom96: x86_64
16:59:36BitPuffi1dom96: zip
16:59:45dom96BitPuffi1: k
16:59:49BitPuffi1well
16:59:55BitPuffi1unless I have to be explicit to get 64bit
16:59:57BitPuffi1but I doubt it
17:00:06dom96BitPuffi1: run nimrod -v
17:00:20BitPuffi1yeah
17:00:22BitPuffi1amd64
17:00:30BitPuffi1imrod Compiler Version 0.9.4 (2014-04-21) [MacOSX: amd64]
17:00:38dom96BitPuffi1: good
17:01:39dom96BitPuffi1: According to wikipedia the default archive utility in mac os supports tar.gz
17:01:42dom96So i'll go with tht
17:01:44dom96*that
17:01:54BitPuffi1dom96: I'm pretty sure i had to install something for it so no
17:01:57BitPuffi1dom96: go with zip
17:02:04BitPuffi1dom96: every mac user uses zip
17:02:05BitPuffi1fucking retards
17:02:15xenagilol
17:02:17dom96hrm "It works as a front-end for command-line programs that are part of OS X."
17:02:20dom96I guess you're right
17:02:25Varriountdom96: Documentation?
17:02:26BitPuffi1yeah
17:02:31BitPuffi1the tar command is available
17:02:32dom96Varriount: I gave you a link
17:02:43dom96<dom96> Varriount: http://picheta.me/private/docs.zip
17:05:31*dom96 is even including SHA256 checksums
17:05:40BitPuffi1that's good
17:05:44BitPuffi1why not sha512? lol
17:05:49BitPuffi1WHILE WE'RE AT IT
17:05:55dom96sha2048
17:06:04dom96sha2^2048
17:06:07dom96YEAH
17:06:17BitPuffi1yeah!!!
17:07:05BitPuffi1or why not SHA4710400??!??!?!
17:07:14BitPuffi1that's my favorite
17:07:21dom96awwk, rust has Mac OS X binary installers
17:07:29BitPuffi1:o
17:07:44BitPuffi1you know what rust also has?
17:07:55dom96Full-time devs? :(
17:08:08BitPuffi1a shitty language!!
17:08:16BitPuffi1where da hood where da hood where da hood at
17:09:47Varriountdom96: Anything else I need to include/tweak?
17:10:19dom96Varriount: Let's go through a checklist: html docs? tweaked the config?
17:10:32dom96babel?
17:11:08dom96argh
17:11:10dom96damn
17:11:16dom96I guess I should include koch
17:11:16VarriountGot all those, except for the config.
17:11:23dom96BitPuffi1: Sorry, I need koch.
17:11:30BitPuffi1._.
17:12:08dom96Varriount: I wonder if it wouldn't make more sense for you to put koch in bin/?
17:13:12dom96actually nah
17:13:15dom96let's leave it as it is
17:13:20dom96I bet koch makes some path assumptions
17:13:28BitPuffi1dom96: you got it
17:15:15dom96thx
17:15:48*icebattle quit (Remote host closed the connection)
17:16:22*brson joined #nimrod
17:18:29dom96well, my dog wants out
17:18:30dom96brb
17:20:18*Varriount quit (Ping timeout: 240 seconds)
17:22:20*Varriount joined #nimrod
17:25:19*DAddYE joined #nimrod
17:28:50Demoscan I tell babel to use vcc?
17:35:52dom96back
17:36:11dom96Demos: Why would you need to? babel doesn't compile C sources
17:36:53DemosI was an idiot, do not worry about it
17:39:23Demoshm I am having trouble with passl when using MSVC
17:39:26Demosstrange
17:46:07Araqhmm the Copyright note is stuck in 2013
17:46:59renesac"There are no real uninitialized variables in Nimrod as they are initialized to binary zero" <-- unless you use the {.noInit.} pragma
17:47:34Demoswell if you used the noinit pragma then you "know what you are doing"
17:48:15renesacthat is a comment for the news piece
17:48:53renesacpeople may get the wrong idea by this
17:49:38dom96Araq: If you want a slim installer with a slim gcc now would be the time to tell Varriount
17:52:31*Demos quit (Read error: Connection reset by peer)
17:56:38Araqdom96: oh yeah. can't ship without Gamera
17:57:25dom96but we can ship without any binaries at all huh?
17:59:22Araqsure
17:59:28Araqit's a "beta release"
17:59:42Araqwe should call it the "heart beat release"
18:00:13dom96Araq: Help Varriount and let's finish this.
18:07:59EXetoCAraq: I'm trying to print a node tree while including flags. tricky
18:08:10EXetoCmaybe I also need to try renderTree again
18:08:32Araqthe node flags are irrelevant for most things
18:08:57EXetoCI'm looking for the dispatcher flag
18:09:20Araqtrying to fix the method forwarding bug?
18:09:27EXetoCmethod recursion
18:10:06EXetoC"Error: unhandled exception: sym is not accessible" dunno where that comes from :E
18:12:21VarriountBack
18:12:53reactormonkwow, the github notifications thingy is flaring up
18:14:09*uvelichitel left #nimrod ("Textual IRC Client: www.textualapp.com")
18:16:51EXetoCtraversing is tricky because you have to figure out if 'sons' is accessible
18:19:21Araqfor i in 0 .. < n.safeLen: traverse(n[i])
18:19:55Araqtricky if you don't know the ways
18:20:02reactormonkAraq, got another idea for float `$`... lemme test
18:21:11EXetoCwill try that later. will have to look for something simpler again if I don't get anywhere. I'll look around a little, but maybe we could estimate the difficulty of issues
18:21:45NimBotAraq/Nimrod devel bc79f40 Simon Hafner [+0 ±1 -0]: changed pointer to array in sqlite callback
18:29:26Varriountdom96: It might be prudent to add to the website that Mingw-w64 is recommended over plain Mingw when on Windows.
18:30:42reactormonkhow do I compile the tester again?
18:31:08Araqnimrod c tests/testament/tester
18:33:20dom96Varriount: alright
18:35:30reactormonkAraq, are 10 numbers plenty?
18:35:39reactormonkor 16
18:36:30Araqreactormonk: IMO we should port what ruby or python use
18:36:43Araqand not use the freaking ansi C stuff
18:36:54renesacI like the sound of 'heart beat release'
18:37:28renesac"Lots of new features have been implemented but most do not fullfill our quality standards." <-- really most?
18:37:39reactormonkAraq, I'd settle for %.16g and then port something more intersting
18:37:42renesacthat sounds bad
18:37:59reactormonkrenesac, where's that from?
18:38:01renesacand I don't think it is so bad
18:38:09renesacthe top of the 0.9.4 announcement
18:38:12renesacin the news
18:38:14renesactab
18:38:15reactormonkmuh
18:38:33reactormonkthat sounds REALLY bad
18:38:56Araqrenesac: well our quality standard have raised :P
18:39:18reactormonkwhoever has access, rewrite that to "Lots of new features have been implemented but most of them are not considered stable yet."
18:39:34reactormonk... or something better.
18:39:49reactormonkbecause "not stable yet" says they're rather buggy
18:40:48fowlreplace it with "xxx issues have been resolved since 0.9.2"
18:41:08renesacfowl, that is misleading
18:41:13fowlwhy
18:41:19renesacas many of those issues were due to bugs introduced in the mean time
18:41:54renesacand issues count pull requests and feature requests as well
18:41:58dom96we already have "1400 changes"
18:42:13renesacthat is more abstract, so it is ok
18:42:16renesac:P
18:42:55NimBotAraq/Nimrod float_$ 77a15dc Simon Hafner [+0 ±2 -0]: use %.16g for `$` float
18:43:13fowlreactormonk, why not do what ruby does?
18:43:58fowl0.51 instead of 5.100000000e-1
18:45:31renesacAraq, an idea: how about implement slices limited to borrowed pointers?
18:45:39renesacthen the GC don't have to care about them
18:45:55renesacand most uses should be covered
18:46:08Araqsure that's nice
18:46:23Araqoh wait, we don't have borrowed pointers
18:46:28renesacyet!
18:46:28fowlreactormonk, you ashould use %.8g for 32bit floats
18:47:16renesacin your tagged pointers documentation you said they could be used to implement this
18:47:35Araqyes
18:48:07Varriountrenesac: What do you mean, slicing borrowed pointers?
18:48:16renesacanother option, less performant, is to store the base address and a start offset, plus the length of course
18:48:47renesacVarriount, the issue araq has with slices is that they add the problem of tracking interior pointers to the gc logic
18:48:47Araqslices are easy to do anyway, even keeping GC efficiency in mind
18:49:06Araqno, that's an oversimplification
18:50:20renesacwhat is an oversimplification?
18:50:35Araq"the issue araq has with slices is that they add the problem of tracking interior pointers to the gc logic"
18:51:00renesacI remember you saying that slices in D preclude the gc from being efficient
18:51:07renesacor make it much harder
18:51:37Araqthat's correct but only because D and Golang picked a braindead representation
18:52:06renesaca pointer plus a lenght
18:52:16Araqyou need to keep 3 words instead of 2. Problem of finding the root solved.
18:52:34renesacyeah, that is the less performant option that I said
18:53:11Araqit is not less performant really.
18:53:46Araqit's simply something people coming from C don't consider.
18:54:13renesachum, I guess the compiler can optimize the constant add to the base pointer
18:54:32Araqyou don't have to do that
18:54:47Araqyou can keep (root, interiorPtr, length)
18:55:00renesacoh, of course
18:55:11renesacI wasn't thinking that option
18:55:58renesacyeah, so the only down side is a slightly higher memory overhead, but the GC would have that overhead anyway
18:56:06Araqbut yeah, I like slicing restricted to borrowed pointers even better
18:56:07*Varriount wishes his college had a course on gc stuff
18:56:24renesaccan't we have both?
18:56:35renesacand a type class that join them?
18:56:54fowlAraq, i see you can now do type X[T] = ref object of TObject but methods still do not work with these
18:57:06Araq"can't we have both?" -- new nimrod slogan?
18:57:25renesacor the borrowed pointers be an compiler optimization? (though it would mess up with the struct organization)
18:57:27renesaclol
18:58:36Matthias247most times making one thing right is better than having both ;)
18:58:48*brson quit (Ping timeout: 265 seconds)
18:58:49BitPuffi1Araq: thought that already was the slogan
18:59:09BitPuffi1in regards to productivity and performance
19:00:45*BitPuffi1 is now known as BitPuffin
19:01:12renesachum
19:01:34renesachow would a typeclass work, if structs of different sizes can be the same typeclass?
19:01:46renesaclike, just a pointer, like the current string
19:01:56Araqa typeclass is just a compile time thing
19:02:13Araqit doesn't allow you to create polymorphic arrays
19:02:25renesacyeah, that is what I was going to ask
19:02:36BitPuffinAraq: like your mum then (revenge)
19:02:46dom96Varriount: ETA on installers?
19:03:11renesacso the compiler forbids me creating an array with them?
19:03:20*brson joined #nimrod
19:03:43Araqproc foo[T: TypeClass](x: sesq[T])
19:03:51Araqthat's what it comes down to
19:04:01Araqit's eventually still a seq of a single type
19:04:50renesacbut if I make a proc that accepts that TypeClass to add things to that array
19:05:00renesacwhat happens?
19:05:21renesacafter it has been added to the array, the compiler can't keep track of the type anymore
19:05:31renesacit would be like an union, w/o a tag
19:05:57fowlrenesac, type class is not a c++ interface, its a relation between types
19:06:44fowleither TX is MyTypeClass or TX isnot MyTypeClass
19:07:11Araqfowl: please do me a favour and git bisect the compiler until you find the commit that broke keineschweine
19:07:23AraqI know it runs with the new VM, so that's not the problem
19:07:32Araq*it used to run with the new VM
19:07:36Varriountdom96: Well, Araq wants the minimal installers
19:08:13renesacfowl, so the compiler would reject that code?
19:08:15VarriountBut I can give you the other installers right now.
19:08:49dom96Varriount: ok, are you working on the minimal ones now?
19:09:05VarriountYes.
19:09:41dom96it seems Elixir got a new release today too
19:10:01fowlrenesac, tr yit
19:10:43dom96and Scala 2.11.0.
19:11:07BitPuffinprobably better to release tomorrew then
19:11:15Matthias247do they contain eastereggs? ;)
19:11:25dom96BitPuffin: you're right
19:11:48BitPuffindom96: of course
19:11:50BitPuffinxD
19:14:18dom96Varriount: If you have skype you can add me and send me the installers if that's easier for you
19:16:31fowlhttp://sqlkorma.com/
19:18:08EXetoCbut is tomorrow the optimal announcement day? don't forget to announce at the right time too!
19:18:32renesacfowl, for a seq it gives an instantiation error
19:18:35renesacfor an array:
19:18:36renesacError: internal error: GetUniqueType
19:18:36renesacNo stack traceback available
19:18:37EXetoCreddit science
19:18:55renesacI will open an issue on this second one
19:19:39AraqVarriount: I'm failing at producing a small mingw
19:20:13Araqso ... no gamera edition anymore unless you succeed where I am failing
19:24:23*brson quit (Ping timeout: 252 seconds)
19:29:38Varriountdom96: The installers directory now has the updated installers, zip files, and 7z files.
19:29:48VarriountI'm working on the gamera edition at present.
19:30:33AraqVarriount: better make an installer without any GCC and lets update the download section and tell people where to find it
19:30:43VarriountAraq: Already did.
19:31:02Araqwe should also host a copy of this
19:31:10Varriount"This"?
19:31:31Araqthe recommended mingw version
19:31:51VarriountWhy host a copy?
19:32:46Araqthe mising SDL_ttf.dll made me nervous
19:33:43VarriountAraq: What? I haven't included SDL with the installers.
19:34:03Araqyeah I know, no worries
19:34:31Araqbut that made me more nervous about dependencies :P
19:35:24VarriountAraq: That's what dependancy walker is for.
19:36:06dom96Araq: Why host it when we have an installer which includes it?
19:36:52VarriountAlso, we could just link to the mingw-w64 download on sourceforge.
19:37:30Araqdom96: because later installers won't include it anymore, perhaps
19:37:34dom96Are we providing 7z archives too?
19:37:57Araqif you want to, I don't mind
19:38:04dom96not really
19:38:51Varriountdom96: After all the hard work I put into compressing them? Finding each substring by hand? :p
19:39:07dom96Varriount: Do you want them on the downloads page?
19:39:54VarriountI don't care whether they are there or not.
19:39:54EXetoCAraq: you didn't want to merge my spawn?
19:39:55dom96I don't want to overload the user with too many options
19:39:58EXetoC+test
19:41:04EXetoCsince sysspawn.nim is on master already
19:41:05NimBotAraq/Nimrod devel 03ffc34 Grzegorz Adam Hankiewicz [+0 ±3 -0]: Version switch displays options used during `koch boot`
19:41:05NimBotAraq/Nimrod devel c0338ea Varriount [+0 ±3 -0]: Merge pull request #1118 from gradha/pr_show_boot_options... 2 more lines
19:42:30Araqwho is so merge happy here?
19:42:41*Varriount raises his hand
19:42:59Araq"version switch displays options used during 'koch boot'"
19:43:05Araqso tell me
19:43:17Araqdo you understand gradha's patch?
19:43:22VarriountYes.
19:44:04Araqand is it the easiest way to do it? :P
19:44:46VarriountI don't know of any simpler way.
19:54:33dom96I swear UAC is making these installers start up 10 times slower.
19:55:57BitPuffinUAC<3
19:56:34*Demos joined #nimrod
19:57:30dom96Varriount: It looks like you didn't include the html docs...
20:01:11dom96or babel?
20:07:43Varriountdom96: It must be a inno configuration bug - They're in the dirs on my computer
20:08:18dom96please fix it
20:10:33*flaviu joined #nimrod
20:16:27Araqfyi: http://dreid.org/2012/03/30/deferreds-are-a-dataflow-abstraction/
20:16:52Araqdom96: in particular of interest for you
20:19:14VarriountAraq: Could you explain where the installer generator get's its list of files to include?
20:19:29Araqcompiler/nimrod.ini
20:19:59VarriountYeah, but I don't see where that adds the paths, like the bin path
20:23:52Araqah
20:24:22Araqthat's tools/niminst/inno.tmpl
20:24:52Araqbut nimrod.ini there is: BinPath: r"bin;dist\mingw\bin;dist"
20:28:10VarriountAraq: I was looking at the wrong file.
20:30:25flaviuBesides performance, wouldn't interpreting the AST raw also work?
20:30:56Araqflaviu: that's what 0.9.2 does
20:33:34Varriountdom96: Is there anything else missing?
20:33:55flaviuWhat motivated the switch to the register vm?
20:34:14dom96Varriount: no, babel and docs. Test one of the installers before you upload please.
20:36:20Araqwhen I started working on the new VM I thought I had nothing more important to do ...
20:36:57Araqalso I underestimated the effort it took by about 5 months
20:37:35Araqthe old interpreter also had many bugs
20:37:49Araqthe new VM has ... different bugs. yay.
20:38:01renesacAraq, now for 0.9.6 you will do a JIT compiler?
20:38:05renesac:D
20:38:12Araqno.
20:38:19renesacaww
20:38:21renesacXD
20:38:26flaviuI'm considering making a VM with code generation to keep the code simple.
20:38:45Araqbut for nimrod 2 I am considering to simply reuse the C backend and invoke the C compiler at compile-time
20:38:55Araqwith some aggressive caching of everything
20:39:07flaviuBut like most things I consider doing, I probably won't ever finish it.
20:39:08VarriountNimrod 2?
20:39:41AraqVarriount: what do you think? Nimrod 1 will be the end of all things?
20:41:45Araqflaviu: however, the new VM is much faster than the old one
20:42:22AraqI got a report that's like "the 1 minute compile time pause went away"
20:43:55renesacthe new command syntax is very nice for using 'nimrod i'
20:44:10renesactoo bad 'nimrod i' still isn't very nice to use
20:45:30Araqtoo bad nobody cares enough to fix it
20:45:44renesacyeah.. not the highest priority
20:47:25renesacoh, 'for' loops are now working
20:47:35renesactoo bad directional arrows aren't
20:47:57Araqbuild with gnuReadline support
20:48:06Araqto get the arrow support
20:48:16*brson joined #nimrod
20:48:27Araqand wether for loops work or not depends on the phase of the moon
20:48:40renesachum
20:49:02flaviuAraq: Will you be deprecating the TinyC interpreter?
20:49:22Araqthat's effectively dead, flaviu
20:49:34AraqTinyC doesn't run properly anywhere afaict
20:49:56VarriountWhy did you include it in the first place?
20:50:04flaviuSo a pull request removing it would be accepted?
20:50:05Demoskinda a neat idea
20:50:32Demosbut I guess if you have something that implements the C standard it does not matter, since you gotta copy at least the intersection of MSVC and GCC
20:50:48Araqflaviu: I prefer you test it first, spend 15 minutes to try to get it to work
20:50:55Araqand then remove it
20:51:09flaviuOk
20:51:19VarriountAraq: What was the motive to include TinyC in the first place?
20:51:36AraqVarriount: it used to work rather nicely
20:53:54renesacsee the features section: http://bellard.org/tcc/
20:54:40dom96Varriount: One of the main motives AFAIK was its speed.
20:55:14dom96A long time ago I wanted a REPL really badly, and Araq told me to use TinyC as a compromise.
20:55:27fowlAraq, issue 907 keeps keineschweine from compiling for me
20:55:29renesacand a 100kb executable
20:56:27Araqfowl: I fixed that, should be in master even
20:57:27renesacoh, much better with gnuReadline
20:59:17Araqyou know, on windows the arrow keys simply work these days.
20:59:42renesacwhy gnuReadline isn't default for linux?
21:00:08AraqSurrealLinux version 8 doesn't include GNU readline
21:00:17renesachum
21:00:25*flaviu quit (Read error: Connection reset by peer)
21:00:46dom96hah
21:01:21Araqand if you think I'm kidding, read this: http://forum.nimrod-lang.org/t/420
21:01:55Araq"received a problem report stating that Nimrod misbehave when procfs is not present"
21:02:06AraqI thought procfs is a feature of the OS
21:02:16Araqbut apparently people like to disable it
21:02:32*[1]Endy quit (Ping timeout: 255 seconds)
21:02:45renesacyeah...
21:04:58renesacok, trying to import 'math' and using 'sum' crashed nimrod i
21:05:34renesacwell, importing math raised lots of errors anyway
21:06:01renesacat the start it also raises lots of errors about 'importc'
21:06:10reactormonkfowl, because it's slightly more complicated
21:06:28*flaviu joined #nimrod
21:09:55AraqEXetoC: your test is risky, I am thinking of a solution. when I break spawn, things can deadlock and so the whole build process.
21:10:13dom96Araq: Add a timeout to the tester
21:10:37AraqI guess we should do that anyway
21:10:44Varriountdom96: Installers updated.
21:10:48renesacI wanted a verbosity mode that only gave me the compilation statistics but not lots of hints about paths that babel adds
21:10:52dom96Varriount: yay
21:11:04renesacis there someway to disable those path hints?
21:11:11dom96Araq: yes, but enable it only if a test specifies it
21:11:40Araqdom96: why? in theory the compiler itself can go into an endless loop
21:11:48Araqso even a 1 line test is not safe
21:12:13dom96Araq: How can you reliably determine that you are not terminating the test too soon due to a timeout?
21:12:36flaviuIf a test is hitting a timeout, it needs to be reworked
21:12:51Araqyeah what flaviu says
21:14:03dom96Varriount: noooo
21:14:13dom96Varriount: Now the config file is wrong!
21:15:41Araqand now you know why we never release. it's lots of hard work to even build an installer.
21:15:58Araqin theory it's all automated.
21:16:08dom96we need to automate it
21:16:11Araqin practice every single release is different
21:16:18dom96and create tests to verify it
21:16:36reactormonkAraq, windows installer?
21:16:57Araqreactormonk: not only. producing a .zip for linux has many of the same problems
21:18:42*renesac quit (Ping timeout: 245 seconds)
21:18:48reactormonk:-(
21:19:33dom96well, I'm going to upload the linux and mac os X binaries
21:19:37dom96Somebody should check them out
21:19:40dom96in case I made some mistake
21:20:23flaviu`nimrod run` fails, it needs a filename. `nimrod run ./test1.nim` also fails, but because it can't find the run command
21:21:20Araqflaviu: did you notice how we produce full debug information in the VM?
21:21:59flaviuNo, I saw it, but I didn't look into it
21:22:14Araqthat feature alone is enough of a reason to make register based VMs superior and much easier to implement, IMO
21:22:43*renesac joined #nimrod
21:23:07Araqfull debug information without slowing down execution
21:23:34flaviuWell, in my hypothetical VM, registers would still be used, but the stack would be the scratch-pad for calculations.
21:23:34flaviuWow, thats awesome
21:27:23dom96http://nimrod-lang.org/download/nimrod_0.9.4_linux_amd64.tar.gz
21:27:39dom96http://http://nimrod-lang.org/download/nimrod_0.9.4_linux_i386.tar.gz
21:27:43dom96er oops
21:27:47dom96http://nimrod-lang.org/download/nimrod_0.9.4_linux_i386.tar.gz
21:27:50dom96please test
21:27:53Araq.tar.gz ?
21:27:59dom96yes.
21:28:06dom96That's what Linux users like
21:28:30AraqI'm a Linux user and don't like tar.gz ...
21:28:33Araq:P
21:28:40dom96why?
21:28:52Araqbecause it's stupid
21:29:21Araqand some tools produce a .tar from the .tar.gz
21:29:30Araqand then you have to untar it again. pathetic.
21:29:40reactormonkAraq, tar xf
21:30:19Araqnobody gives a fuck about .tar, it's an academic exercise to split archiving and zipping
21:30:24dom96Araq: It's easier for package managers to use the .tar.fz
21:30:31dom96*gz
21:30:40Araqdom96: now that is at least a reason
21:30:41dom96tar is more common than unzip AFAIK
21:32:32dom96Araq: Don't worry. Windows and Mac OS X is a zip.
21:33:09AraqI think Mac OS X wants a .dmg instead
21:33:48reactormonkyup
21:34:23Araqbut maybe they found a way to make iTunes read zip files
21:39:19flaviuAraq: aunpack. I don't care what format my archives are
21:45:25EXetoCAraq: "echo int16(40000)". I'm trying to get this to generate an overflow error. where do I look?
21:46:17AraqEXetoC: most likely semfold
21:46:22EXetoCthat just prints the 'int' value 40000
21:46:24EXetoCright
22:01:09Araqdom96: I tried the 64bit linux tar.gz
22:01:19Araqkoch says it's Version 0.9.3
22:01:23Araqnot good.
22:01:34dom96koch?
22:01:42Araqyes?
22:01:53Araqoh wait a sec
22:02:22Araqok, nimrod says it's 0.9.4
22:02:32Araqso no showstopper
22:02:42dom96good
22:04:27Araqwell it works for me
22:06:14dom96Varriount: I moved the zips so don't panic that they're gone
22:11:38Skrylarmeep
22:17:30dom96Araq: The rst cheatsheet has been overwritten by the rst module docs...
22:17:53renesacEXetoC, https://github.com/Araq/Nimrod/issues/936
22:18:19dom96Varriount: You still alive?
22:21:12fowlhay
22:21:32fowlwill this work right: when nimrodversion < "0.9.3"
22:22:07Araqdom96: ok I have a backup
22:22:13Araqlet me revert that file
22:22:37dom96is the rst module listed in lib.html?
22:23:11Araqyes. damn
22:23:30fowllol
22:30:53Araqwell I can fix that
22:31:27fowlhrm i wonder what i use 'gl' for in keineschweine
22:33:47Araqdom96: I fixed it
22:33:57Araqbut create an issue for nimforum to rename rst.html
22:34:11Araqto rst_cheatsheet or something
22:36:23fowlAraq, ks compiles now
22:40:01Araqfowl: I'm talking about the keine_schweine test in tests/manyloc
22:40:14Araqand that doesn't work anymore, at least on my computer
22:49:32flaviuAraq: You're planning a llvm backend?
22:50:00Araqno, that's old code you're looking at
22:50:18Araqllvm is lots of work and doesn't solve many problems
22:50:19flaviuOld docs actually, docs/nimrodc
22:50:36Araqoh that one
22:50:52Araqwell it helps to keep it in mind when designing the FFI
22:52:04flaviuWell, the llvm solves the whole interpreter issue, and sidesteps most of undefined c beheivor
22:53:18Araqlinking against a massive C++ project introduces its own set of problems
22:54:09Araqundefined C behaviour is a problem but the C spec is too insane and people noticed so I'm positive this will improve
22:56:14*Matthias247 quit (Read error: Connection reset by peer)
22:58:01*darkf joined #nimrod
23:16:56Skrylarhrm
23:17:15Skrylarseeing this notecard program reminds me of how weird it is that certain data trees are really simple yet they're not put together
23:17:19dom96Shall we post to reddit and HN guys?
23:17:40flaviudom96: I'm ready
23:19:15Skrylari've been thinking about a data structure which basically revolved around having a single 'notecard' record and then all the other data related to it is bolted on separately, like a.. i donno
23:19:19Skrylarloosely relational something
23:19:41flaviuA tree?
23:19:49DemosmongoDB?
23:20:28SkrylarDemos: somewhat
23:21:30SkrylarEcco Pro had it so you could edit the fields for the database, which they used to hack in things like making a boolean column to represent a tag/folder; articydraft has something similar where you define a 'schema' which is something like "research item" for an rts or "main character" and it bolts those fields on separately
23:22:13flaviuPrototypes?
23:22:15dom96flaviu: Would you mind submitting it to reddit and HN?
23:22:25flaviuI only have a reddit account
23:22:27Skrylarflaviu: yeah, i was thinking something like those
23:22:48dom96flaviu: That's ok, can you submit it to reddit?
23:23:40dom96If so, use the following URL: http://nimrod-lang.org/news.html#Z2014-04-21-version-0-9-4-released
23:23:40Skrylarthe whole idea was that it would be able to store an item, then have a bibliography tag attached so it could show up in a reference manager view, but then you could also put it inside a concept map so it had a separate map tag, so basically you can organize this same bullet point in a few different folders without leaving the program
23:24:28Skrylarmongodb-lite (does one exist?) or janking prototypes on to sqlite would probably do it
23:25:34flaviuI'm trying to, but I get an error. Give me a few minutes.
23:25:53dom96ok. I'll submit it to HN
23:27:17dom96https://news.ycombinator.com/item?id=7624689
23:29:25flaviuHmm, I guess reddit doesn't like logging in with ssl
23:32:29flaviuhttp://www.reddit.com/r/programming/comments/23mt34/nimrod_094_released_includes_new_async_io_module/
23:32:57dom96cool thanks
23:34:34*jturner joined #nimrod
23:34:47dom96hello jturner!
23:34:52jturnerhi
23:35:00NimBotAraq/Nimrod devel 9ea55bf Dominik Picheta [+0 ±3 -0]: Website updates.
23:35:16jturnerwill there no longer be zip/tar releases that contain csources like 0.9.2 did?
23:35:57jturnerthe 0.9.4 tar release on github doesn't seem to contain the c sources
23:36:21dom96The C sources have been moved here: https://github.com/nimrod-code/csources/
23:37:23jturneryup, no release archive tho, i ask cause i maintain a nimrod port on OpenBSD and having release archives is important
23:37:43jturnerwe can't just checkout from git for our builds like some linux distros do
23:38:06jturneri can host my own, but having an offical one is always nice
23:39:10flaviudom96: Why not add the latest c sources to csources and add a release?
23:39:22dom96Yeah.
23:39:33dom96jturner: I can tag the latest commit on the C sources repo is that helps.
23:39:34flaviuThat way we have an official 9.4 tarball
23:39:47dom96Github will then provide a download link IIRC
23:39:54jturneryup a tag would help
23:39:55jturnerthanks
23:39:59flaviudom96: You have to upload the release tarball manually
23:40:03Skrylarjust make sure not to name the tag "latest"
23:40:13renesacdom96, Araq has given the green light for Reddit/HN posts?
23:40:17Skrylaryou can't retag an existing tag without it invalidating the tag archives
23:40:38dom96renesac: yeah, reluctantly, but he did :P
23:40:58dom96flaviu: Nope. See here: https://github.com/Araq/Nimrod/releases
23:40:59renesacnimrod heart beat release
23:41:01dom96I didn't upload those.
23:41:56renesacwe could start giving funny names to our releases
23:42:13renesaclike ubuntu and mmg does
23:42:14renesacXD
23:42:26flaviudom96: Thats the source. You don't want people to download all 20 historical csources, they just want the latest
23:42:28dom96We could come up with some fun naming scheme.
23:42:51dom96flaviu: That's the files in the repo at that tag.
23:43:17Skrylarwell here's a headscratch
23:43:21xenagijturner, where do you maintain the port?
23:43:35Skrylarfreetype wants to open a file by default and requires bij to open a system font; GDI wants to open a system font by default and requires bij to open a file
23:44:31jturnerxenagi: it's in the offical openbsd ports tree, http://www.openbsd.org/cgi-bin/cvsweb/ports/lang/nimrod/
23:45:14dom96I wonder how long it will take the Arch guys to update the Nimrod package.
23:45:21xenaginice
23:45:28flaviudom96: It comes directly from git, so instant
23:45:45Demosflaviu: I think he meant the community one....
23:45:48Demosnot the aur one
23:46:44dom96jturner: I hope this helps: https://github.com/nimrod-code/csources/archive/v0.9.4.tar.gz
23:47:16flaviudom96: Please upload an archive with just the latest sources
23:47:20jturnerdom96: perfect, thanks
23:48:19flaviuOr maybe I'm not understainding how this works
23:48:59dom96flaviu: Download the archive and see for yourself.
23:49:02jturnerflaviu: in my case i'll just download both v0.9.4.tar.gz from the Nimrod and csourses repos and then extracted them in the same folder
23:49:17jturnernow i have all I need to build like before
23:50:57flaviuOh, I thought that the 8_2... were version numbers
23:51:40jturnernope, those related to arch and such
23:58:42reactormonkdid we have any interest in advocating using result = X instead of return X?