<< 29-10-2014 >>

00:00:17boydgreenfieldJehan_: Does indeed. Quite a bit removed from my area of expertise unfortunately. Odd that the behavior changed so suddenly. I’ll do a bit more Docker + DNS + git googling...
00:15:58BitPuffinJehan_: oh it doesn't say anything?
00:15:59BitPuffinbut I mean
00:16:12BitPuffinshort, int and long are keywords in C89
00:16:26Jehan_Yes?
00:16:26BitPuffinbut I guess they don't necessarily mean anything in terms of bit count
00:16:39Jehan_Exactly.
00:16:44BitPuffinhrm
00:16:58BitPuffinbut you can't use stdint.h in C89 and expect full portability right
00:17:10BitPuffinand I don't think long long is allowed
00:17:21Jehan_No, long long isn't in C89.
00:17:51BitPuffinso how would you get a 64 bit number :P
00:18:09Jehan_The reality is that most compilers either support C99 or a sufficiently powerful subset.
00:18:36Jehan_The latter being Microsoft's compiler, more or less.
00:18:46BitPuffinhm
00:18:46BitPuffinyeah
00:18:48BitPuffinCL sucks :P
00:19:24Jehan_So, you make an #ifdef _WIN32 or something like that, hardcode int sizes for that, and use stdint.h for other platforms.
00:19:38BitPuffinoh windows doesn't have stdint.h?
00:20:33Jehan_Not last time I checked.
00:20:44Jehan_Well, Microsoft C doesn't have it.
00:20:56BitPuffinyeah it's in the C++ thingy
00:21:00BitPuffinbut that's not C
00:21:01BitPuffin:P
00:21:23Jehan_But other compilers have to stick to the same ABI, so you can just handle all Windows compilers as one single case here.
00:21:39BitPuffinthe annoying thing is that gcc does not whine about using stdint.h even when you have -std=c89 and all the pedantic stuff
00:22:33BitPuffinat least not with mingw
00:22:35Jehan_Because the standard doesn't say say anything about being limited to only a certain set of include files.
00:22:52Jehan_Any platform can provide whatever other include files they want.
00:23:06Jehan_As long as they provide the minimum listed in the standard.
00:23:30BitPuffinyeah I know
00:23:43BitPuffinbut doesn't the header files usually have an ifdef hell of version stuff?
00:23:54Jehan_Yes.
00:24:23BitPuffinso I guess it's mingw's fault for not having it in this particular header
00:25:32Jehan_Hmm?
00:25:43Jehan_There's nothing wrong with having stdint.h in c89.
00:25:57Jehan_No reason they have to disallow it.
00:27:10BitPuffinwell I mean
00:27:19BitPuffinthen you could also use say threads.h
00:27:30BitPuffinso what's the point of doing -std=c89 then :P
00:28:12BitPuffinwell
00:28:17BitPuffinactually doing all of this
00:28:20BitPuffin-Werror -Wall -Wextra -std=c89 -pedantic-errors -Wmissing-prototypes -Wstrict-prototypes -Wold-style-definition
00:29:22*brson quit (Quit: leaving)
00:29:39BitPuffinmaybe I also need -Wpedantic
00:30:27Jehan_It means that everything in the standard is there, at a minimum.
00:30:37*superfunc_ joined #nimrod
00:30:46Jehan_Anyhow, good night. :)
00:30:48*Jehan_ quit (Quit: Leaving)
00:38:26*superfunc_ quit (Quit: Page closed)
00:43:12*BitPuffin quit (Remote host closed the connection)
00:44:26*BitPuffin joined #nimrod
01:10:06*boydgreenfield quit (Quit: boydgreenfield)
01:21:23*mko quit (Quit: Bye.)
01:27:15*will quit (Read error: Connection reset by peer)
01:36:34*darkf joined #nimrod
01:47:07*dom96_ joined #nimrod
01:57:24*Fran__ joined #nimrod
01:57:24*Fran__ is now known as Fr4n
02:00:26*Francisco quit (Ping timeout: 258 seconds)
02:18:37*BitPuffin quit (Ping timeout: 260 seconds)
02:20:11*superfunc quit (Quit: Connection closed for inactivity)
02:28:19*dapz joined #nimrod
02:33:26*dapz quit (Quit: Textual IRC Client: www.textualapp.com)
02:52:59*johnsoft quit (Ping timeout: 264 seconds)
02:53:17*johnsoft joined #nimrod
03:00:18*xenagi quit (Quit: Leaving)
03:12:43*flaviu quit (Ping timeout: 255 seconds)
03:19:18*kemet joined #nimrod
03:40:22*ditzex is now known as comex
04:02:34*superfunc joined #nimrod
04:07:56VarriountAraq, dom96: Regarding --parallelBuild and mixed up output, has any thought been put into gathering the called processes output into individual buffers, and reading out the buffers, in order, when the processes have completed?
04:30:16*boydgreenfield joined #nimrod
04:50:57*ARCADIVS joined #nimrod
05:13:46*superfunc quit (Ping timeout: 246 seconds)
05:20:05*kshlm joined #nimrod
05:20:55*kshlm left #nimrod (#nimrod)
05:27:01*nande quit (Remote host closed the connection)
05:40:28*boydgreenfield quit (Quit: boydgreenfield)
05:48:33*boydgreenfield joined #nimrod
05:55:59*khmm joined #nimrod
05:56:32*khmm_ joined #nimrod
05:57:00*boydgreenfield quit (Quit: boydgreenfield)
06:30:40*gokr joined #nimrod
06:32:57*kemet quit (Ping timeout: 260 seconds)
06:46:23*johnsoft quit (Ping timeout: 264 seconds)
06:53:45*superfunc joined #nimrod
06:55:05superfuncdoes anyone have experience getting pandoc to highlight nim properly?
07:54:57*superfunc quit (Quit: Page closed)
08:03:40gokr1Morning!
09:19:37*Matthias247 joined #nimrod
09:33:04*khmm__ joined #nimrod
09:38:51*kuzy000 joined #nimrod
09:40:41*kuzy000 quit (Remote host closed the connection)
09:47:35*khmm__ quit (Remote host closed the connection)
09:47:36*khmm_ quit (Read error: Connection reset by peer)
09:48:23*kemet joined #nimrod
10:02:03*kemet quit (Remote host closed the connection)
11:21:16*johnsoft joined #nimrod
11:22:35*Matthias247 quit (Quit: Matthias247)
11:27:39*Matthias247 joined #nimrod
11:32:27*Trustable joined #nimrod
11:37:05*tdc joined #nimrod
11:39:40*johnsoft quit (Read error: Connection reset by peer)
11:40:24*johnsoft joined #nimrod
11:42:10*ARCADIVS quit (Quit: ARCADIVS)
11:56:40*kemet joined #nimrod
12:02:02*untitaker quit (Ping timeout: 265 seconds)
12:06:49*untitaker joined #nimrod
12:34:40*kemet quit (Ping timeout: 272 seconds)
12:55:01*darkf quit (Quit: Leaving)
12:59:49*Trustable quit (Quit: Leaving)
13:04:01*bjz joined #nimrod
13:12:42*BitPuffin joined #nimrod
13:19:52*kemet joined #nimrod
13:25:14*superfunc joined #nimrod
13:26:00*BitPuffin quit (Remote host closed the connection)
13:37:03*BitPuffin joined #nimrod
14:06:15*Matthias247 quit (Read error: Connection reset by peer)
14:09:11*Trustable joined #nimrod
14:10:16*BitPuffin quit (Remote host closed the connection)
14:10:45*BitPuffin joined #nimrod
14:19:52*irrequietus joined #nimrod
14:28:54gokr1Posted a long article on Nim and OO: http://goran.krampe.se/category/nim/
14:46:09gokr1Its not one of my more structured articles - but perhaps its interesting.
14:46:41*BlaXpirit joined #nimrod
15:14:06Trustablegokr1: thanks for you article! :)
15:15:44gokr1What did you think of it?
15:15:54gokr1It turned very long - and probably quite confusing
15:18:43Trustablegork1: You write "Procs bind statically and calling a “super” proc is easy using type conversion."
15:19:14TrustableThat's true, but normally you use methods, and for methods calling "super" is not possible.
15:20:52TrustableWe really need this feature in my opinion.
15:30:07*nullmove joined #nimrod
15:30:10*superfunc quit (Quit: Connection closed for inactivity)
15:39:22*untitaker quit (Quit: ZNC - http://znc.in)
15:44:53*untitaker joined #nimrod
15:53:44*johnsoft quit (Ping timeout: 255 seconds)
15:54:20*johnsoft joined #nimrod
15:57:10*brson joined #nimrod
15:57:11gokr1Trustable: Read it all :)
15:58:41gokr1Its "easy" calling super - but its also dangerous. Because if the base "proc" calls "self procs" then... it will fail. Since it now has lost type info.
15:59:36gokr1But I agree - we need the super call. As Jehan said, in Dylan and CLOS etc they have some kind of "call-the-next" method. Not sure if there is a smoother solution.
16:04:40*superfunc joined #nimrod
16:11:36*kemet quit (Ping timeout: 264 seconds)
16:14:32superfuncAraq, dom96_ : just wanted to say how much I enjoy the (T -> T) syntax for procs, really has cleaned some things up for me
16:35:35gokrhmmm, the lambda syntax?
16:36:35*AMorpork is now known as AFKMorpork
16:36:45*nande joined #nimrod
16:38:05*CARAM_ quit (Ping timeout: 265 seconds)
16:38:28superfuncI can write proc map[T,V](s: SomeFunctor[T], f: (T -> V)) : SomeFunctor[V]
16:38:41superfuncwhere f is a function going from type T to V
16:38:59*endou_____ quit (Ping timeout: 265 seconds)
16:39:44superfuncjust a little easier then writing f: proc(x: T) : V, for me
16:40:52gokroh, didnt know that syntax
16:41:37superfuncits from the future module
16:41:46*irrequietus quit ()
16:50:53*MyMind quit (Ping timeout: 255 seconds)
16:54:33*mko joined #nimrod
16:55:00*irrequietus joined #nimrod
17:01:14*MyMind joined #nimrod
17:02:20*mko quit (Ping timeout: 256 seconds)
17:07:47*MyMind quit (Ping timeout: 258 seconds)
17:11:11*MyMind joined #nimrod
17:12:20superfuncgokr: What did you use for syntax highlighting in your blog?
17:12:57*kemet joined #nimrod
17:16:23*Jesin quit (Quit: Leaving)
17:18:15*Jesin joined #nimrod
17:18:41gokrits pygments i think
17:18:49gokroctopress
17:19:17gokrit supports nimrod
17:32:21*mko joined #nimrod
17:36:50superfuncgokr: thanks
17:37:02superfuncI'm gonna try to hack some support together for pandoc tonight
17:38:16*endou_____ joined #nimrod
17:43:00*BitPuffin quit (Remote host closed the connection)
17:47:43*BitPuffin joined #nimrod
17:50:55*CARAM_ joined #nimrod
17:52:53VarriountMeep
17:54:21*kemet quit (Ping timeout: 244 seconds)
17:55:19VarriountAraq: How does Mixed mode work?
17:58:12*irrequietus quit ()
17:59:35*bjz quit (Read error: Connection reset by peer)
17:59:56*bjz joined #nimrod
18:04:51*Demos joined #nimrod
18:08:14VarriountDemos: Ping
18:08:20*Matthias247 joined #nimrod
18:10:17*khmm quit (Ping timeout: 245 seconds)
18:10:39*superfunc quit (Quit: Page closed)
18:10:45DemosVarriount, pong
18:11:19VarriountDemos: Are there any special flags the Nim compiler needs to use to compile C++ on VCC?
18:11:45Demoswell look in extccomp.nim for the ones we currently use
18:12:01DemosI think we change the stack size and maybe turn off SEH or something
18:13:38Demoswe also pass /arch:sse2 which prompts some output on newer compilers but it is required as older compilers do not do that by default
18:14:31VarriountHm.
18:15:38Demosyou having some kind of problem?
18:15:56VarriountI'm adjusting configuration reading for when the compiler is in C++ mode.
18:16:08*nande quit (Remote host closed the connection)
18:16:11VarriountI'm just undecided if the way I'm doing it is correct.
18:17:07VarriountThe current way I have it done is that, when the compiler is in C++ mode, it reads options loaded from the config file using a 'cpp' prefix.
18:17:53VarriountEg, 'gcc.options.linker' is used in C mode, and 'gcc.cpp.options.linker' in C++ mode.
18:18:56Demosthat sounds OK, as long as you are comfortable duplicating options...
18:19:18VarriountWell, what alternative is there?
18:20:05Demoshaving the c++ ones be based on the C ones, I dont really like that idea though, sounds complicated
18:30:12*vsajip joined #nimrod
18:30:25*mko quit (Quit: Bye.)
18:37:51vsajipJust installed Nimrod 0.9.6 on Windows 7 64-bit, hit a couple of problems. I selected the mingw option during installation, but when I tried compiling a "Hello, world!" program, I got "Error: unhandled exception: The system cannot find the file specified." Not too helpful, but I assumed this might be referring to gcc. The installer adds c:\Nimrod\dist\mingw to the PATH, but the compiler is...
18:37:52vsajip...in c:\Nimrod\dist\mingw\bin. I updated the path, and now I get a different slew of errors, starting with:
18:37:54vsajipIn file included from c:\users\vinay\projects\scratch\nimcache\hello.c:8:0:
18:37:55vsajipc:\Nimrod\lib/nimbase.h:383:13: error: size of array 'assert_numbits' is negative
18:37:57vsajip typedef int assert_numbits[sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8 ? 1 : -1];
18:37:59vsajipAnything obvious I'm doing wrong? hello.nim is just echo("Hello, world!") - I assume this could be to do with include files, but I'm not sure where to look.
18:39:52*mko joined #nimrod
18:40:12Demosthat error says that your compiler and nim disagree on the size of a pointer
18:40:15*noam joined #nimrod
18:40:38Demosas far as I know mingw is a 32-bit compiler, so try running nimrod with --cpu:i386
18:41:07Demosthis should indeed be the default but we moved to a new installation scheme with this release so things are a little rough around the edges
18:41:15Araqvsajip: you're too late. both issues have already been fixed in the latest installer. please re-download.
18:42:19Araqsorry for the inconvenience, but hey, we migrated from Inno Setup to NSIS
18:44:28AraqVarriount: mixed mode detects "importcpp" and sets some module-wide flag that then checked for in the codegen
18:44:39vsajipNo worries, retrying ...
18:44:54*noam quit (Ping timeout: 256 seconds)
18:50:33vsajipAraq: Latest installer does fix the problem, thanks.
18:51:25Araqplease note that our mingw is incredibly small in comparison to the official mingw release
18:54:11Varriount:D
18:54:39Varriountvsajip: It takes about 2 hours to programmatically trim down a mingw installation.
18:56:46vsajipVarriount: Oof! What's left out? On Windows, is mingw preferred over the Microsoft compilers?
18:57:19DemosI dont think anything is preferred, but the MS compilers are harder to install than the included mingw
18:58:10Demosif you want to use stuff like gtk+ you probably want to use mingw, whereas if you want to use something like Direct3D you should probably stick to the microsoft compiler
18:58:40Demosalthough mingw may be able to compile code using d3d, I don't really know
18:59:09vsajipDemos: Makes sense, thanks. Even the Visual C/C++ Express installers don't get the installation right (64-bit and cross-compiler environment vars aren't properly set).
18:59:55Varriountvsajip: GDB, Ada, Python & Perl, among other things
19:00:37VarriountAraq: Does mixed mode cause the CPP compiler to be called?
19:02:10Varriountvsajip: Oh, and a number of binutils are left out as well.
19:02:49vsajipVarriount: Good to know, thanks.
19:02:54VarriountEssentially, anything that, if deleted, doesn't alter/prevent koch and the Nimrod compiler from compiling.
19:03:39Varriountvsajip: If you need to switch to a full mingw installation, you can write over the bundled one - just make sure it's the same bitness
19:04:15Demosvsajip, hm, they should be. You need to use the bash script in like Common7/Tools/Shortcuts or something to get the x64 compiler or the cross compilers
19:04:29VarriountAs to why we use mingw over vcc, vcc is now bundled with visual studio (no seperate download), which is a 3GB release.
19:04:30DemosI don't use the express versions so I may be wrong
19:04:36vsajipVarriount: Noted.
19:04:46DemosVarriount, it is in the WDK as well I think
19:04:49Demosnot 100% sure though
19:05:31VarriountDemos: http://msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx
19:05:49Varriount"The Windows SDK no longer ships with a complete command-line build environment. You must install a compiler and build environment separately."
19:07:18vsajipDemos: The vcvarsall.bat files aren't properly setup in some Visual C Express versions. For example, on 2008, vcvarsall.bat looks for amd64\vcvarsamd64.bat, but there's no such file, it's in vcvars64.bat which is moreover not in the amd64 directory. Fun and games :-)
19:07:34VarriountWhich is quite a daft move - I don't need to download Visual Studio on, say, a remote builder.
19:08:18Demosugh... what a pain
19:08:39VarriountT_T
19:08:43AraqVarriount: the c++ compiler is called for these modules that need it
19:09:03VarriountAraq: Hm.. I wonder how that will work with my configuration changes...
19:09:13AraqVarriount: it might in fact work
19:09:34Araqwill review your patch later, I'm busy
19:09:35*irrequietus joined #nimrod
19:12:04VarriountHello irrequietus
19:12:42irrequietus'lo
19:25:08wanIs there a way to do a static error? I'd like compilation to fail with a nice error when neither -d:postgres nor -d:redis is passed to the compiler for a program that has to make use of either one or the other...
19:26:00wanSomething like when not defined(...) and not defined(...): staticError("please pass either -d:postgres or -d:redis")
19:29:58wanAlright, found it. Static statement/expression on the tutorial page.
19:30:36*superfunc joined #nimrod
19:33:47Demoswan, also the {.fatal.} pragma
19:33:54Demosor the {.error.} pragma
19:35:35wanOh, much better than static:, thanks!
19:35:40Demosfatal will crash the rpel as well as stop a compile, error does not stop the rpel, you probably want error
19:39:06*nullmove quit (Quit: Leaving)
19:40:04DemosIn case anyone cares useFFI is broken on bigbreak, I still like it but I understand that is it not supported
19:40:16*Demos quit (Read error: Connection reset by peer)
19:40:38Araqwell yes. it's not supported anymore.
19:40:47Araqbut thanks, will update koch.nim
19:40:49wanI've noticed that the export statement behaves differently also
19:40:58Araqyeah, will fix it
19:41:08Araqit's actually a bugfix
19:41:09wanI had to do 'export bla.stuff, bla.stuff2' instead of 'export bla'
19:41:22*Jehan_ joined #nimrod
19:41:32Araqwell, I don't think 'export bla' was documented?
19:41:41Araqwhere 'bla' is a complete module
19:41:52*edayo joined #nimrod
19:41:58Araqhi edayo welcome
19:42:18wanProbably not documented. I just tried it at some point :)
19:42:34Araqother people even use it instead of the export marker
19:42:38Araqaka *
19:42:51Araqwhich never was documented either
19:43:15Araqbut I don't mind supporting it officially, many dislike the * export marker
19:44:57*Demos joined #nimrod
19:46:12wanI quite like * as an export marker, but 'export mymodule' has its uses. Like for example forwarding exports so that the user of a lib only has to import one file
19:46:45wanbut the lib would be separated in several files
19:47:35wanachievable by 'export mylibfile1.stuff, mylibfile2.stuff2', but cleaner with 'export mylibfile, mylibfile2'
19:50:38Jehan_The only problem with export instead of '*' is that export can't come before the declaration of the symbol. So you have to look at the end to see what's visible.
19:50:50*Hakaslak joined #nimrod
19:53:40*superfunc quit (Ping timeout: 246 seconds)
19:54:57wanI find * more usable for everyday exports because it's right next to the definition of the proc. It's not in a special place somewhere in the file, or in a .h file
20:01:11Araqwell yes, 'export' was designed for forwarding
20:01:28Araq* is more convenient to use and read
20:01:44Araqthinking about it
20:01:53Araqexport instead of * likely breaks the docgen
20:01:59Araqhi Hakaslak welcome
20:03:45Hakaslakoh hi Araq
20:03:48Hakaslaksomeone said hi to me!
20:04:00AraqI'm not "someone" :P
20:04:05HakaslakI have no idea what Nimrod is, I just read about you guys on HN
20:04:30*MightyJoe quit (Ping timeout: 258 seconds)
20:04:35HakaslakPer brihat 270 days ago... "Nimrod's gang (including Araq) are very friendly and welcoming." Source: https://news.ycombinator.com/item?id=7161236
20:04:36*cyraxjoe joined #nimrod
20:04:52Araqhi cyraxjoe welcome
20:05:09Araqwhat's up tonight? are we on reddit or something?
20:05:26Hakaslakare you having an influx of new people?
20:05:36Araqkind of, yeah
20:05:52cyraxjoeAraq: hi!
20:05:56HakaslakI got here by Googling for "best javascript irc channels" and clicking the first link, and adding all the channels people said were good.
20:06:20Araqer ... ok? well we have a JS backend
20:07:09wanWhat google finds links to an HN "Best IRC channels?" page, no mention of js on that
20:10:57*Hakaslak quit (Quit: TODO: Generate 'Part & Quit Message')
20:11:41*Hakaslak joined #nimrod
20:12:46*Hakaslak quit (Max SendQ exceeded)
20:12:49*vsajip left #nimrod (#nimrod)
20:13:25*Hakaslak joined #nimrod
20:16:29Araqflaviu? can I summon you this way?
20:19:50Jehan_Nah, /cast[summon](flaviu) would be the correct syntax. :)
20:20:17Jehan_He's not on the channel at the moment, though.
20:20:52*nande joined #nimrod
20:22:17Araqyeah but he has the habit of showing up when appropriate
20:23:41*Hakaslak quit (Quit: TODO: Generate 'Part & Quit Message')
20:24:16*Hakaslak joined #nimrod
20:25:21*Hakaslak quit (Max SendQ exceeded)
20:25:57*Hakaslak joined #nimrod
20:33:18*flaviu joined #nimrod
20:35:57flaviuHey Araq
20:36:11flaviusorry, I was 10 minutes late :P
20:37:12*superfunc joined #nimrod
20:41:06*tillzy joined #nimrod
20:41:49tillzy:D
20:42:17superfunchi tillzy
20:42:27tillzyHi!
20:42:56superfuncwelcome to nim-irc
20:43:17tillzythanks! i think there is something wrong with my irc client tho :S
20:43:42superfuncwhy?
20:45:10tillzynot sure, the latest i can see from this chat is and the other i am in is "oh dear tillzy" and "yep, something wrong with tillzy" :p
20:45:34tillzychannel*
20:46:44flaviutillzy: Have you tried turning it off and on again? ;)
20:47:11tillzylol, i just turned it on right now, the logs are form october 18th, not sure what happened back then
20:47:24tillzymaby my kid got hold of the computer
20:51:47tillzyOnionhammer: do you by anny chanse remember what happened? you wrote "dear lordy lord tillzy" =/
20:52:33tillzylooks like i been banned from that other channel, must have been quite bad
20:54:13*tillzy quit (Quit: tillzy)
20:54:35flaviutillzy: http://build.nimrod-lang.org/irclogs/17-10-2014.html
20:55:44flaviuahaha araq discovered the arch installer :D
21:06:20*nande quit (Ping timeout: 250 seconds)
21:09:24Varriountflaviu: >:D
21:10:13Varriountflaviu: Araq, dom96, and I have decided to replace nimbuild with buildbot for the time being.
21:10:32flaviuok, sounds good
21:13:14Araqflaviu: your PR cannot be applied
21:13:21Araqand I'm not sure it's against bigbreak
21:13:46flaviuok. I'll see if I can sort it out
21:14:28*Trustable1 joined #nimrod
21:14:28*Trustable1 quit (Client Quit)
21:16:50*dom96_ quit (Ping timeout: 255 seconds)
21:17:23*superfunc quit (Quit: Page closed)
21:23:21*edayo quit (Ping timeout: 260 seconds)
21:23:48fowlarch is nice
21:24:13fowlcustomized a livecd to include beta nvidia drivers, it was super easy
21:24:15*dom96_ joined #nimrod
21:55:28VarriountAraq: Regarding the recent PR, it messes up a test case, or it requires a test case?
21:56:04flaviuAraq: Ok, I think it'll work now
21:59:40*irrequietus quit ()
22:00:23AraqVarriount: it requires a test case
22:00:43flaviuAraq: I've opened another PR https://github.com/Araq/Nimrod/pull/1605
22:00:48flaviuthis should be much easier now
22:01:40Araqfowl: does that mean opencl works for you out of the box?
22:04:31*Mat3 joined #nimrod
22:04:34Mat3hello
22:07:34TrustableI want to try out bigbreak and get this error: lib/system.nim(2388, 67) Error: invalid pragma: locks: 0
22:08:21VarriountAraq: What folder would this test go under? lookups?
22:08:35Araqmodules
22:08:41VarriountTrustable: What OS, and did you boot from csources?
22:09:18TrustableLinux Mint, yes, boot from csources
22:09:29Trustableboth branch bigbreak
22:09:39gokr1Hey guys
22:09:50TrustableHi gokr1
22:10:38gokr1Trustable: IIRC that issue is because the Nim compiler now uses a new "locks" pragma, so ... you need newer csources. Just cloned or?
22:11:04Trustableyes, cloned and checkout bigbreak
22:11:54gokr1Btw, wrote an extremely detailed article on the bootstrap process just like a week ago: http://goran.krampe.se/2014/10/15/bootstrapping-nim/
22:12:11gokr1I can try again on my box.
22:12:20NimBotnimrod-code/nimforum new_async 4de7e58 Dominik Picheta [+14 ±4 -1]: First steps towards new forum design.
22:14:18gokr1Trustable: Was the error when you did... the last step? koch boot?
22:14:49flaviuVarriount: I have a shitty ARM box you can use for the builder if you'd like. Of course, 64MB/s ram isn't too exciting :P
22:14:49TrustableThe error occurs, when I try to compile a Hello World
22:14:50*tdc_ joined #nimrod
22:15:46gokr1oh, and you use "nim"?
22:15:54gokr1Not "nimrod"?
22:16:09gokr1In bin you will have both an older "nimrod" (from csources) and the new "nim".
22:16:18Varriountgokr: Yes, because the name change is instituted after 1.0
22:16:20gokr1The real bigbreak compiler is "nim"
22:16:27gokr1Varriount: I know.
22:16:39gokr1But I am guessing Trustable uses the old one.
22:17:12gokr1Works for me: ../bin/nim c hallo.nim
22:17:38gokr1And yes, indeed, using "nimrod" fails.
22:18:04gokr1The "nimrod" compiler left there is... just AFAIK an artefact from the boot procedure. You can nuke it :)
22:18:11gokr1Trustable: Works?
22:18:14TrustableSolved my using "nim" instead of "nimrod". thanks.
22:18:18gokr1great
22:18:25*tdc quit (Ping timeout: 260 seconds)
22:19:23gokr1And best way now is to NOT install - just softlink that nim binary somewhere in your path :)
22:19:59VarriountI wonder if we can/should fix that - perhaps the standard library and compiler code should have a version number matching the nimrod compiler, and the compiler should warn if the number doesn't match?
22:20:40Mat3I agree, this would be nice
22:21:52VarriountHm.. what would be the warning...
22:22:39Varriount"Warning: Version mismatch between compiler and standard library - errors may occur"?
22:23:00*tdc_ quit (Quit: Leaving)
22:23:07Mat3something like that
22:25:52AraqVarriount: good idea. and not hard to do.
22:26:18VarriountAraq: How would you prefer it to be done?
22:26:32*johnsoft quit (Ping timeout: 245 seconds)
22:26:42*johnsoft joined #nimrod
22:27:00VarriountMy first impulse would be to make some sort of marker file in the standard library.
22:28:30flaviuVarriount: Too unixy :P
22:30:34*Fr4n quit (Ping timeout: 255 seconds)
22:31:07*Fr4n joined #nimrod
22:31:08AraqVarriount: simple, fill in the real version for NimVersion and then use magicsys to read this value and compare it to nversion
22:36:18VarriountHm, another question is, should we force the user to specify a command line param to ignore the warning?
22:36:45VarriountSince it would be displayed near the beginning of compiler invocation, and not the end, it's less likely that it will be seen.
22:37:14Araqyou can even make it an error unless 'booting' is defined
22:38:52flaviumeh, I'm sure there's at least one obscure usecase where it's intentional
22:39:31*BlaXpirit quit (Quit: Quit Konversation)
22:39:46Araqflaviu: ah, you're learning ;-)
22:40:10VarriountHow about an overrideable error when using a library whose version is greater than the compiler, and just a warning when it's less?
22:40:35TrustableIs there already a changelog for bigbreak?
22:40:37flaviuThe impression I get from error is "this is non-optional"
22:40:54TrustableWhy was it necessary to have the first letter case sensitive?
22:41:00Varriountflaviu: Unless the error message specifies that it can be overridden.
22:41:17VarriountTrustable: So that people can do 'socket = Socket()'
22:41:31Trustableok
22:41:31Varriountand not have the compiler throw up on them.
22:42:30flaviuVarriount: sorry, but that doesn't make sense to me. Only warnings should be disablable. Errors are for things that cannot be recovered from.
22:43:08Varriountflaviu: Then what do you call a warning that stops the program unless overriden via a command line parameter?
22:43:29flaviuImplement werror?
22:44:03Mat3Varriount: I'm not sure if it would be better to handle these situation as error if not otherwise (explicitly) specified
22:44:20AraqVarriount: flaviu is right. there are no "optional" errors. (*cough* don't look at --theadAnalysis)
22:45:14flaviuisn't threadAnalysis just a way of specifying you're opting into some possibly buggy analyses?
22:46:27VarriountAraq: Well, it's your call. I've stated what I want done.
22:47:10Araqflaviu: no, it's sound these days. but to be able to compile non-complying code, you can disable it
22:47:51gokr1Someone commented on my slightly confusing OO article about UI bindings. And we only have gtk right? hmm.
22:48:16Araqwe also have IUP and claro bindings
22:48:41gokr1Ah, right.
22:48:41Araqand I once played a bit with the Tcl binding
22:49:20VarriountIUP?
22:49:21Araqalso we have a couple of SDL/opengl based widgets
22:49:24gokr1Wonder how hard it would be to take that c-thingy that Haskell did for wx - you looked at it, right?
22:49:44Araqand we have some terminal based UI
22:49:59Araqquite a lot of code, I fixed 2 compiler bugs to make it run
22:50:14Araqthe developer didn't show up in quite some time though.
22:50:14VarriountAraq: That was whitestag, right?
22:50:21Araqaye
22:50:25Araqthat was its name
22:50:28Varriount:<
22:51:16AraqVarriount: well I can't do more than fixing critical bugs
22:51:30Araqif that takes too long for some people, so be it
22:51:43VarriountAraq: My frowny face wasn't at you, it was at him/her not showing up.
22:53:14Araqgokr1: wxWidgets is not that hard to wrap but tedious
22:53:44gokr1It seems wxRust first does what c2nim does - then they have a Python prog that generates the "high level" layer.
22:53:45Mat3probably FLTK is a good target too
22:53:52Araqthe time is better invested in wrapping Qt afaict
22:54:03gokr1vs wx?
22:54:08Araqyes
22:54:34gokr1But those are the top 2 choices I would say.
22:55:01flaviuwhitestag?
22:55:24Varriounthttps://github.com/bbodi/WhiteStag
22:56:35Araqgokr1: no, wx, qt and lazarus are the top 3 choices ;-)
22:56:53gokr1Mmm, for an IDE you mean?
22:57:08Araqfor developing UIs
22:57:16Araqwell
22:57:21gokr1But... for picking the "best" UI toolkit - wouldn't Qt basically trump all?
22:57:32gokr1I mean, it supports all the mobile platforms too, right?
22:57:33Mat3no
22:57:45Araqfrom the list of UI libraries that we have no wrappers for
22:57:47flaviuqt still has a reputation for being heavy
22:57:52Mat3it is
22:58:14VarriountAraq: Revised the PR for issue 1561
22:58:34Araqgokr1: dunno about mobile, but lazarus comes with an UI builder and produces *native* widgets for mac, linux, win
22:58:45Mat3(just one example: Qt features is own preprocessor (!) as I know)
22:58:55Araqfor linux both qt and gtk are supported
22:59:02Araqso it has actually 4 backends
22:59:23VarriountAraq: Yeah, but isn't pascal a bit more... object oriented than Nimrod?
22:59:36AraqVarriount: as opposed to Qt?
22:59:47Araqor wxWidgets? (both in c++)
22:59:52Varriount... point taken.
23:00:14gokr1I need to read more about Lazarus - I had never heard of it until a few days back,.
23:00:23gokr1So you mean it fits Nimrod well or?
23:00:30gokr1Nim, sorry! Nim, Nim...
23:00:32Varriountgokr: Well, it's in pascal.
23:01:08TrustableI'm fixing currently the case-related errors in the gtk2 wrapper
23:01:17Araqgokr1: I mean it's an impressive piece of technology. but it's hard to wrap for Nim.
23:01:28flaviupas2nim?
23:01:29Araqharder than Qt or wx
23:01:42Araqpas2nim is not nearly up to the task
23:01:51gokr1And if one would build a Qt app - then you would use the Nim cpp backend, right?
23:02:12Araqgokr1: that's the plan, yes
23:02:12gokr1Unless it was C-wrapped first I guess.
23:02:27gokr1But that's ... a biggie I guess.
23:02:34VarriountI'm not sure that it would be easy to use either - using lazarus as a gui would mean having a nimrod layer using a pascal layer using a native/qt/gtk layer.
23:02:46Araqwe'll improve the C++ support so that no C wrapper is necessary
23:03:03Trustableoh, I just have to update
23:03:34VarriountAraq: Right now I'm working on getting up the BuildBot. It's going to take a bit of work.
23:03:38AraqVarriount: what works well is to build the UI with lazarus and program the backend in Nim. calling Nim code from Lazarus works nicely.
23:03:53VarriountAraq: Have you tried this?
23:04:01Araqwe even have an example for that in the distribution
23:04:35VarriountAraq: Wouldn't it require compiling Qt/GTK, Lazarus, and the Nimrod wrapper on top of everything else?
23:04:41Mat3Araq: even then, wrapping Qt is a difficult effort
23:05:50AraqVarriount: well usually you install lazarus, no need to compile it
23:06:11Araqand then you compile the project with the ide and link .o files produces from Nim to it
23:06:32Araq*produced
23:07:00VarriountHm.. I still wish we had a library of our own - something native to Nimrod.
23:07:19Araqsure thing
23:09:00AraqI wanted to slowly port claro to Nim
23:09:14Araqbut I won't have the time
23:09:16VarriountDoesn't Claro only work on Windows?
23:10:10*Varriount_ joined #nimrod
23:10:16*superfunc joined #nimrod
23:10:26Araqnative widgets for windows, linux (gtk) and macosx (cocoa)
23:10:34Araqbut it't not maintained anymore
23:10:42Araqand the code kind of sux
23:11:05Araqthe instance the text widget uses a fixed size 1MB buffer
23:11:31Araqbecause memory management is too painful in c
23:11:42flaviuIt should have been a fixed 4GB buffer
23:11:47*Varriount__ joined #nimrod
23:11:52flaviuThen it's the OS's problem :P
23:12:00*bjz quit (Ping timeout: 265 seconds)
23:12:18Varriount__Designing a gui framework for Nim would require a bit of planning
23:12:37*Varriount quit (Disconnected by services)
23:12:52*Fr4n quit (Ping timeout: 255 seconds)
23:13:02*Varriount__ is now known as Varriount
23:13:27VarriountWhat would a proper GUI framework for Nimrod even look like, api wise?
23:13:44AraqVarriount: well you can always ask fowl
23:13:56Araqhe did one
23:14:31*Fr4n joined #nimrod
23:15:19*Varriount_ quit (Ping timeout: 265 seconds)
23:15:23TrustableI also think of creating a GUI library: WinAPI on Windows, Gtk on Linux
23:18:42reactormonkTrustable, I kinda liked TK, but that's also the only one I've ever worked with
23:19:15VarriountBe back, restarting computer.
23:19:21*Varriount quit (Read error: Connection reset by peer)
23:19:50*Mat3 quit (Quit: Verlassend)
23:20:28TrustableI only know WinAPI and Gtk so far
23:23:05gokr1Trustable: Google for wxRust, do something similar - in other words, take the C wrap of wx from wxHaskell, then read my article on c2nim - then generate a low level Nim binding.
23:23:26gokr1When that is done, you can whip up a hello world.
23:23:50gokr1And then start thinking of the "pure" layer, to make it Nimmish.
23:24:13gokr1But I think the first start - is a good start. And it might be fairly quickly done, if you are lucky.
23:24:46Trustablegokr1: I will take a look.
23:28:35*Varriount joined #nimrod
23:33:58VarriountI noticed that araq pulled in a PR to nimble packages which includes a GMP wrapper. Anyone played with it yet?
23:35:02*Varriount_ joined #nimrod
23:37:50gokr1Btw, if anyone feels like reading a... long article on OO in Nim - my confused n00b ramblings on the subject with lots of code: http://goran.krampe.se/2014/10/29/nim-and-oo/
23:38:03gokr1And I am all ears fixing things that are wrong in it.
23:38:44Varriount_Eh.. flaviu, is it me, or did the arch installer disappear from arch?
23:38:47*Varriount quit (Ping timeout: 258 seconds)
23:39:09flaviuVarriount_: Arch doesn't have an installer. I hear it had one a time ago
23:39:16flaviuBefore my time with it
23:39:32Trustablegokr1: wxWidgets is way too heavy in my opinion
23:39:42*BitPuffin quit (Remote host closed the connection)
23:39:45superfuncgokr1: I'll give it a look later this evening
23:39:52gokr1superfunc: cool
23:40:09gokr1Trustable: Perhaps, but it sure does seem to work.
23:40:23*BitPuffin joined #nimrod
23:53:14*boydgreenfield joined #nimrod
23:54:53*Fr4n quit (Ping timeout: 240 seconds)
23:59:04*Fr4n joined #nimrod
23:59:05Varriount_flaviu: *cough* https://github.com/helmuthdu/aui *cough*
23:59:27*Varriount_ is now known as Varriount
23:59:31flaviuVarriount_: Just learn to love the command line