<< 19-03-2014 >>

00:04:59Varriountdom96: ping
00:05:18dom96yes?
00:09:13Varriountdom96: Is there a 'results' key in the data sent to the hub? Specifically, the data sent to the part of the hub that creates the gist of results
00:16:35dom96likely not
00:17:04Varriountdom96: Then what key contains the test result data?
00:17:17dom96There is no key that contains it.
00:19:06VarriountBut I could have sworn that testament was updated to output all the test results to json, which the builder then sent to the hub
00:19:21dom96The builder doesn't send testresults.json as a whole.
00:19:49dom96https://github.com/nimrod-code/nimbuild/blob/master/src/builder.nim#L236
00:20:58VarriountAh. I see. Lovely.
00:22:09*nolan_d left #nimrod (#nimrod)
00:25:56*flaviu joined #nimrod
00:30:30*nolan_d joined #nimrod
00:34:41*EXetoC quit (Quit: WeeChat 0.4.3)
00:40:41*DAddYE quit (Remote host closed the connection)
01:04:09BitPuffinhey dom96
01:04:11BitPuffindom96:
01:04:13BitPuffindom96
01:05:11dom96sup
01:06:23BitPuffindom96: there is a MiniLD this weekend
01:06:42BitPuffinit's like Ludum Dare, but more casual
01:06:46BitPuffinshould we rod it?
01:06:52BitPuffinthe theme is _awesome_
01:06:58BitPuffinDemake
01:07:14BitPuffinie remake a game that exists with less advanced tech
01:07:46BitPuffinhttp://www.ludumdare.com/compo/2014/03/07/mini-ludum-dare-50-announcement/
01:08:56dom96if only I had time over the weekend :(
01:09:06dom96you should do it though
01:09:14fowlc00l
01:09:47BitPuffinsubmission will be open until the end of the month
01:10:45fowli will demake katamari damacy
01:10:49fowlin 1d
01:11:00fowlyou only roll forward, collecting pixels
01:11:21fowlwhile the king of cosmos mocks you
01:11:45BitPuffinI might do it if fowl wraps allegro 5
01:12:09fowlallegro has an ugly api
01:12:18BitPuffinallegro is sweet
01:12:34fowli have a 1% wrapper for it, just to test if it works
01:16:55fowlnobody has shown interest in it to compel me to finish it
01:17:13BitPuffinwell
01:17:40BitPuffinwith allegro I can do pretty much everything needed for a jam
01:17:48BitPuffinwithout having to use SDL
01:17:50BitPuffinvomit
01:18:00fowls/allegro/sdl or sfml
01:18:34dom96what's wrong with sdl/sfml?
01:18:35BitPuffinsdl sucks
01:18:45BitPuffinsfml sucks
01:19:05fowllol
01:19:10fowlsell me on allegro then
01:19:11dom96That's... very detailed.
01:19:16BitPuffinno I just think SDL is shit, don't really know about sfml, but the little I've looked at it wasn't too nice
01:19:35BitPuffinI guess not shit, but I just don't htink there is a reason to use SDL
01:20:17*q66 quit (Quit: Leaving)
01:20:23dom96righhttttt
01:20:30BitPuffinwell like I said, with allegro I can do pretty much everything I need without extra stuff in a relatively sane way which is what I want especially for a jam
01:21:22fowlwhat is "everything"
01:21:34BitPuffineverything I need in a game?
01:21:48fowlsdl and sfml have graphics, audio, fonts, networking, thats everything
01:22:04dom96I wouldn't even use the networking part.
01:22:22dom96sfml is really nice
01:22:26dom96and has positional audio
01:22:26BitPuffinI guess, but if you think SDL has a pretty API compared to allegro 5 then you are on crack
01:22:29dom96and other cool things
01:22:29fowlexcept for the part where i didnt wrap sdl2_net/audio yet
01:23:00fowldom96, do you know how to work the positional audio
01:23:10dom96nope lol
01:23:18BitPuffinsfml is probably good now, didn't like it when I looked at it but it was a while ago, anyhow I guess it's mainly personal preference, I just find allegro to work really great without much hassle
01:23:42fowldom96, i read the docs like 8 times and do what it says but audio is still coming from 0,0
01:24:10dom96fowl: perhaps ask on their forum
01:24:24dom96They seem to answer questions well
01:24:31BitPuffinwat
01:24:33BitPuffinno docs on csfml?
01:24:43fowlyea
01:24:49fowlBitPuffin, no, its the same api as sfml
01:25:04BitPuffinah because it's almost identical
01:25:57*Mordecai joined #nimrod
01:26:04BitPuffinI dunno guess I have a slight bias against C++ things
01:26:17*Mordecai is now known as Guest89728
01:26:41BitPuffindidn't like SDL because it's not good, and sfml is C++ but has lots of bindings I know, but yeah. Allegro has a nice API imo and is written in C
01:26:48BitPuffinso I guess that's how I ended up there
01:26:52BitPuffinI don't really need to sell it
01:27:06*psquid quit (Ping timeout: 264 seconds)
01:27:07BitPuffini'm just saying that if I'd do a 2d game for Mini LD I'd wanna use Allegro
01:27:08fowlyou do if you want me to do the wrapper
01:27:42BitPuffinfowl: The sell on allegro is that with the allegro wrapper there is a higher chance of a nimrod entry to MiniLD
01:28:36fowlyou dont give me any time though, this is the first ive heard of anyone besides gradha express interest in allegro
01:28:58BitPuffinfowl: false
01:29:02dom96To me Allegro sounds like an old lib for some reason
01:29:05BitPuffinbecause I've whined about allegro before
01:29:27BitPuffinin fact it was one of the first thing I I did as a fresh nimrod noob
01:29:29fowlits a pretty big lib, it would take a while to wrap
01:29:56fowlalso it hijacks main() on windows, not sure how to get over that
01:29:57BitPuffindom96: probably because the classical nature of the name? however allegro has been around for ages
01:30:24BitPuffinfowl: have a look at the D wrapper, maybe you'll find wisdom
01:30:39dom96You rarely find wisdom in D code.
01:30:40BitPuffindom96: it's history is quite impressive
01:30:41*dom96 hides
01:30:53BitPuffindom96: true, but I didn't mean that kind of wisdom
01:31:00BitPuffinI meant more like, how to bind allegro to a language
01:31:04fowld wrappers so ugly :/
01:31:49BitPuffinwell there is a rust wrapper too
01:31:52BitPuffinbut it's less done
01:31:53BitPuffinor at least was
01:31:55BitPuffinmonths ago
01:31:58BitPuffin\o/
01:32:14dom96oh, did you guys hear that the new rust package manager will be created by the guys who created ruby's bundler?
01:32:24fowlhttps://github.com/fowlmouth/allegro5/blob/master/al.nim
01:32:44dom96I need to write a blog post about babel.
01:33:21fowlheh bundler, you either love++ it or hate++ it
01:36:45dom96good night
01:37:47BitPuffindom96: hugs, sleep well
01:38:48BitPuffinfowl: I don't see why you think the api is ugly in allegro, it's nice imo
02:09:02*Guest89728 quit (Ping timeout: 246 seconds)
02:11:08*psquid joined #nimrod
02:22:16*flaviu quit (Remote host closed the connection)
02:45:06Skrylarah allegro
02:45:20SkrylarI like that library.
02:46:05SkrylarBitPuffin: fowl: are you both talking about different versions of it?
02:46:30SkrylarAllegro has been around since 1990 and was a DOS lib, until they rewrote it in its modern GL-backed version.
02:47:54SkrylarI don't think Allegro4/5 require jacking main anymore, and most libraries that hijacked main usually did it as a convenience from what I recall (like SDL1, who did it because it smoothed over the whole winmain/main issue)
02:49:13fowl5 does afaict
02:49:34*DAddYE joined #nimrod
02:49:44*nande joined #nimrod
02:50:26*DAddYE quit (Client Quit)
03:02:13*brson quit (Quit: leaving)
03:04:20*nolan_d left #nimrod (#nimrod)
03:05:35*nolan_d joined #nimrod
03:47:34*Demos joined #nimrod
03:52:01*Demos quit (Ping timeout: 240 seconds)
03:59:25*cark2 joined #nimrod
04:00:23*cark quit (Read error: Connection reset by peer)
04:06:22*Demos joined #nimrod
04:06:48Demosanyone have experience with a scripty game engine (like pygame or love2d)?
04:08:28Skrylari've used love2d before, Demos
04:08:39Demosis it good
04:08:57Demosfrom first impressions it looks pretty nice and simple (in a good way)
04:09:51fowli enjoyed love2d
04:10:20fowlthe api is straightforward and includes everything you need
04:10:50fowltried pygame back in the day, its ok but really its a thin interface to SDL
04:11:11Demosyeah that is the impression I got
04:12:17Demosand I dont know lua or python, and I think lua is probably eaiser to learn
04:12:23Skrylarfowl: well, love2d is a thin interface to sdl too :P
04:12:38SkrylarMaybe more akin to a thin interface over Allegro, since it includes basic texture/sound importing
04:12:59fowli wouldnt say that
04:13:23fowlit doesnt use sdl, maybe for window management but everything else is gl
04:13:45Demoscritically though it is lua not c++, so if I dont need teh sp33dz this is good. Not having to deal with c++ build/deploy/anti-modularity bullshit is a good thing
04:14:04SkrylarMy dislikes with Love2d is that it uses Puc Lua instead of LuaJIT for no apparent reason (why is something directly performance intensive intentionally using something slower? someone asked why they didn't use luajit and there wasn't an answer), font rendering looks like it loops over the glyphs every frame unless you explicitly render to textures, and the usual no GUI
04:14:13fowlDemos, use nimrod, it has a lua wrapper
04:14:17SkrylarI still facedesk when I see things claim to be game engines and have no interface :/
04:15:03fowleh id rather gui arise from the api rather than be included
04:15:03DemosSkrylar, I thought it was just a library, cant I just use luaJIT
04:15:08Demosand fowl stability
04:15:14SkrylarDemos: no, love2d is an engine
04:15:15Demosthis is for gamejams with my friends
04:15:25Demosthe difference is not that clear
04:15:28fowlDemos, i can also recommend libgosu for ruby
04:15:39Skrylaryou would have to pop open the engine source code and fiddle with it, its not a library you just include to a program
04:15:41fowlSkrylar, i believe it used luajit in the recent releases
04:15:51SkrylarGodot has a GUI system built in to it. Haxe/NME at least supports text fields
04:16:13SkrylarI would consider NME's "we don't have a GUI, but we do have the core components to make it as well as some simple text fields" the bare minimum
04:16:45Demosalso I don't like haxe
04:17:03Skrylarthe problem i have with having the gui arise from the API is that it often doesn't, people often hack their own together on a "it works good enough for this project so its done", and people forget that text editing SUCKS
04:17:22fowlheh i tried haxe, first i couldnt get it to compile, a couple years later i came back to it and i disliked describing your project in xml or w/e
04:17:49SkrylarI thought haxe was neat but the compile time is really bad
04:18:11Skrylarthe actual haxe compiler itself is fairly slow, and thats before the C++ generator makes it even worse
04:18:14fowlSkrylar, true, you get to that part and realize you need to store things like which gui element has focus so it can recieve text input
04:18:15DemosSkrylar, is it worse than c++?
04:18:27SkrylarDemos: well it outputs to C++, not C
04:18:39Demosbut like nimrod generates C that compiles really fast
04:18:46fowlSkrylar, btw i believe i know what to do about backrefs in the signals lib
04:18:49Demosbut C has the same basic issues with compile time c++ does
04:18:56SkrylarSo you have to deal with a fairly slow (albiet it does have a lot of macro support) compiler outputting massive C++ stacks that G++ then takes forever to compile
04:19:30Skrylare.g. the same hello world that nim+gcc compiles in 0.3 seconds takes upwards of 2-5 in haxe
04:19:40Demosmaking something compile slower than c++ is a fucking acheivement
04:19:53Demoswait what the FUCK
04:20:04Demos5 secs for hello world does not bode well
04:20:06Skrylarplus it wants you to use their build driver, so its extra work to extricate your code from "I WILL USE MSVC BECAUSE WINDOWS" and its like "no i want you to use GCC damn it"
04:20:27Skrylarcopy/paste runtime code, set up tupfile to build everything...
04:20:32fowlsomething cool about love is it makes distribution easy, you zip up your game and change the ext to .love
04:20:42Demoswow so it actually copies the shit that is c++ build systems
04:20:45Demosyeah that appealed
04:21:14fowlrequires the user have love installed to play your game but thats not too taxing imo
04:21:55Skrylaryou can rename the exe and love file so it autostarts
04:22:55Skrylarbe warned that writing anythinng complex in lua is running headstrong in to what the language was not dsigned to handle though :)
04:23:20Demosyeah, again gamejams
04:23:46DemosI found with javascript stuff started to get annoying around 2-5kloc
04:27:17*Demos quit (Quit: Leaving)
04:30:26*BitPuffin quit (Ping timeout: 252 seconds)
04:34:19Skrylarfowl: what was your idea for the backrefs?
04:39:31*rejuvyesh[away] quit (Ping timeout: 264 seconds)
04:50:31*rejuvyesh[away] joined #nimrod
06:10:32*nande quit (Ping timeout: 246 seconds)
06:13:22*nande joined #nimrod
06:14:55*Ransel quit (Ping timeout: 264 seconds)
06:47:51fowlSkrylar, was going to be type classes but i ran into issue #1015
06:47:53fowlgn
06:53:00*skyfex_ quit (Remote host closed the connection)
07:00:05*skyfex joined #nimrod
07:21:18*skyfex quit (Quit: Computer has gone to sleep.)
07:34:29*skyfex joined #nimrod
07:40:34*clovis joined #nimrod
07:40:57*clovis is now known as Guest87872
07:42:34*Guest87872 left #nimrod (#nimrod)
07:47:46*Ransel joined #nimrod
08:00:08SkrylarI feel as though what was meant to be a critique, yet became a 3,000 word essay, probably was not a wise use of my time.
08:00:11Skrylar:|
08:04:06*skyfex quit (Quit: Computer has gone to sleep.)
08:30:02*Ransel quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
09:25:54*Mat3 joined #nimrod
09:25:59Mat3Good Day
09:28:15*easy_muffin joined #nimrod
09:35:44Mat3one question: I plan to migrate my Nimrod specific code from a Mercurial repro (specially the vector library) to nimrod-code. Is these the right location for it ?
09:36:53Mat3Please note, I am not familiar with Git. Otherwise I upload it to my own server and create a homepage
09:42:30*Mat3 quit (Quit: Verlassend)
09:53:23*zielmicha quit (Quit: Connection closed for inactivity)
10:12:59*easy_muffin quit (Ping timeout: 240 seconds)
10:16:30*profmakx quit (Remote host closed the connection)
10:18:30*OrionPK quit (Remote host closed the connection)
10:19:29Araqhi mat3
10:19:43Araqoh he's gone already
10:24:04*nande quit (Read error: Connection reset by peer)
10:29:33*XAMPP quit (Read error: Connection reset by peer)
10:42:44*CARAM joined #nimrod
11:24:35*EXetoC joined #nimrod
11:37:49*Mat3 joined #nimrod
11:40:00Mat3ping Araq
11:42:55*easy_muffin joined #nimrod
11:43:20Araqpong Mat3
11:45:38Mat3hello, someone tried a DoS attack (fortunatly he or she used his own IP for this *lol*). I guess not the only one who she or he tried
11:45:58Mat3^guess to be
11:51:54Mat3anyhow, how can I add my projects to nimrod-code ?
11:52:20dom96why do you want to add it to nimrod-code?
11:53:46Mat3because I am not familiar how and where I can contribute
11:54:10Mat3otherwise
11:54:36dom96you should create an account on github and create your own repos for your personal projects
11:56:02*CARAM quit ()
11:56:04Mat3ok, no problem. What's the proceeding for my vector library ?
11:59:08Araqadd a .babel file and make a PR so that babel knows about it
11:59:14AraqPR = pull request
11:59:29Mat3ok thanks
12:00:20Mat3have some work to do, ciao
12:00:23*Mat3 quit (Quit: Verlassend)
12:02:45Skrylartoday is "how many kinds of event processors do people normally use" day
12:02:48Skrylar:|
12:16:39*Ransel__ joined #nimrod
12:26:59*EXetoC quit (Quit: WeeChat 0.4.3)
12:31:20*BitPuffin joined #nimrod
12:37:53*Ransel__ is now known as Ransel
12:51:26Skrylarhrm.
12:51:34Skrylari need to test if procvar is going to cause stupidity
12:52:08SkrylarOne of the benefits of signals and slots is that methods like "setText(...)" are actually slots, so you can call it directly to set text or you can wire some arbitrary event that outputs text in to set text
12:52:22Skrylarso it looks like slots will have to be procvar'd
12:54:03Araqyup
12:54:27Araqproc vars default to .closure so that should work pretty nicely
12:57:05*easy_muffin quit ()
12:59:13Araqthough perhaps an explicit event queue works better
13:20:39*nolan_d left #nimrod (#nimrod)
13:29:40SkrylarAraq: those are a bit annoying for GUIs
13:30:21Skrylarwhile blah.pump(); case x.type of: geActivation: ...
13:30:36Skrylarcompared to just, thisThing.onActivation.connect(blah)
13:31:10Skrylarthough for some reason when i write it i use wire/unwire instead of connect/disconnect sometimes for no particular reason
13:32:03Araqwith the queue you don't need various lists of listeners though
13:32:49Skrylaryou don't, but then you just have a big crufty processing function :\
13:33:37SkrylarI think wxWidgets actually does something like that internally, but they hide it under a base class and #defines
13:34:20SkrylarI thought about adapting the OID generator to produce 32/64-bit values instead of what it does now, and using a compile-time function to generate the event IDs for something like that
13:34:36Skrylarto solve the "who gets to use UserEvent42" problem
13:35:52SkrylarAraq: i wonder if it would be possible to cheat the syntax so you still use wire(blah.this, self.massivExplosion) but it actualy just shoves a reference in an event pump
13:36:02SkrylarSolves both problems
13:38:09Araqa macro can do that, I think
13:39:24Skrylarthinking about it, i think you still get the sequence of listeners problems because you have to tell things that emit events where to push to
13:39:37*EXetoC joined #nimrod
13:39:39Skrylarunless you limit it to a single pump, at which point you could have done the same to the sig/slot code
13:40:25Skrylarunless you're just using a thread-local global for all event pushing
13:40:57Skrylarno more dozens of seqs, but receivers have to filter for messages intended to them
13:42:52Skrylar... And the above discussion is the reason I made a point to set aside time to write down different event models and test them :\
13:51:22*flaviu joined #nimrod
13:53:14*jbe_ joined #nimrod
13:55:01AraqSkrylar: I think exhu has started a nimrod UI toolkit as well, please take a look
13:55:12Araqit's usually better to join forces
13:55:25Araqhe uses cairo as the backend iirc
13:55:31*darkf quit (Quit: Leaving)
13:55:32Araqand x11
13:58:46*OrionPK joined #nimrod
14:04:35EXetoCthat's slightly different from a toolkit that is specifically for OpenGL though
14:05:21EXetoCbut I don't know if cairo can be integrated with OpenGL apps
14:06:07Skrylarsort of
14:06:19Skrylarthey have an experimental backend, though I think it just rasterizes to textures
14:06:57SkrylarI've considered making a win32 backend on numerous occasions just because it gets *something* which is usable, and if I don't architect things wrong its replacable anyway
14:07:34Skrylarbuuuuuut, i haven't been able to work on any of that because of researching event handlers and layout algorithms :P
14:10:25EXetoCA tree of vertical/horizontal layouts doesn't seem too complex, but you might have something else in mind
14:10:45Skrylaryeah, something like that.
14:10:57EXetoCat least when not taking auto-fitting into account :>
14:11:04SkrylarI was thinking of one that switches if the dimensions get too small, like CSS flexboxes
14:11:35Skrylarwhen clovas was in here we talked about auto-fitting, and I expressed that I think auto-fitting might be better off getting jettisoned in favor of "auto degrading"
14:13:38EXetoCsort of like media selectors, but more fine-grained?
14:14:01Skrylarunified points (CEGUI's thing) can basically take 90% of the role of resizing anchors, and if you handle size constraints as "if > x then show all things, < x then hide text and show icons, if < x then show less icons and a dropdown offer" then you have eraticated a significant amount of complexity from your system
14:14:41SkrylarEXetoC: more or less. CSS flexboxes are supposed to let you have sidebars/asides that are left-to-right on a big screen and become iPhone-y if the screen is too small
14:15:04SkrylarPlus you always have the option of panicking to a scroll bar region if all else fails
14:15:07dom96I think you should create a base GUI toolkit which just works on global positions.
14:15:31Skrylarthat sounds nappy :(
14:15:40*zahary_ joined #nimrod
14:15:41dom96Then write modules on top of that to provide different methods of sizing the widgets.
14:16:18Skrylarthen you have to componentize the coordinates from the widgets, and that adds extra deref sadnesses
14:18:17Araqmeh just port lazarus to nimrod and call it a day :P
14:18:27Skrylarlol
14:18:34Skrylarat times it feels like thats what i'm doing <_<
14:19:35*silven_ is now known as silven
14:22:37Skrylarat least its just glorified rectangle management. not like i have to debug ASTs all day :>
14:23:35AraqASTs are easy and we got them right. Types are hard and I think we got them wrong :P
14:24:34Araqbut I am not the kind of guy who rewrites 70,000 loc to use a different type representation which might turn out as problematic as the old one
14:26:27*nolan_d joined #nimrod
14:26:54Araqdom96!
14:27:15Araqgtk2 got a pull request: GTK-Quartz and Mac integration support
14:27:29Araqlooks like aporia will take off on mac :-)
14:28:34dom96I doubt it :P
14:29:14dom96I'm amazed at how many stargazers Jester has.
14:29:30Araqmy opencl wrapper has 0 ... :-(
14:29:46dom96lol, not anymore
14:30:07*skyfex joined #nimrod
14:30:15Araqhi skyfex
14:30:21jbe_is it possible to have a code block run automatically when new threads are initialized (or finished), without using the thread entry point? like, for a multithreaded lib that likes to be on top of things... a bit like threadvars... ?
14:30:23skyfexhiya
14:32:32*Ransel_ joined #nimrod
14:32:39*Ransel_ quit (Read error: Connection reset by peer)
14:32:47Araqjbe_: you can try to hack system/threads.nim
14:33:47jbe_Araq: ok thx. plans to add it?
14:34:32AraqI don't mind adding *something* but the question with callbacks is always what effects allow for them
14:35:20jbe_ah, right.
14:35:38Araqwhen you pass the callback via a parameter that is not stored somewhere we do defer this decision
14:35:42EXetoCAraq: we got types wrong? ok time to start over
14:35:56AraqEXetoC: the representation of types in the compiler
14:36:06EXetoCoh, right
14:36:23Araqand it's not clear yet whether it's actually *wrong*
14:37:30dom96we're almost at 500 stargazers :D
14:37:58EXetoCnot far from 10000
14:44:59Araqskyfex: I assume your PR doesn't affect any test?
14:45:42Araqb) add the addition of the 'packed' pragma to the docs: web/news.txt and doc/manual.txt or nimrodc.txt
14:51:23*jbe_ quit (Remote host closed the connection)
14:52:03*Endy joined #nimrod
14:56:35*jbe_ joined #nimrod
14:57:53*[1]Endy joined #nimrod
14:59:48*renesac joined #nimrod
15:00:31*Endy quit (Ping timeout: 264 seconds)
15:00:34*[1]Endy is now known as Endy
15:06:55*jbe_ quit (Remote host closed the connection)
15:07:05*Demos joined #nimrod
15:07:38Demosso apperently people are writeing type system plugins for java8, very interesting.
15:08:06*[1]Endy joined #nimrod
15:10:59*Endy quit (Ping timeout: 240 seconds)
15:10:59*[1]Endy is now known as Endy
15:14:12Skrylaralright.. probably time to take care of some other things and then head to naps
15:14:39SkrylarBenchmarking a bunch of event systems is going to take brainpower xD
15:15:06AraqDemos: yeah we need something like this eventually
15:23:47EXetoCSkrylar: have fun
15:25:59DemosAraq: from a brief look it sounds like mostally adding qualifiers
15:47:29VarriountDemos: Type system plugins?
15:47:33VarriountHow do you do that?
15:52:08Demosno idea, but apperently people are doing it
15:52:31VarriountDemos: Link?
15:52:32DemosI mean in nimrod you could presumably use a macro to go through functions with certain pragmas and emit {.error.}s
15:52:57Demoshttp://docs.oracle.com/javase/tutorial/java/annotations/type_annotations.html
15:53:17Demoshttp://types.cs.washington.edu/checker-framework/
15:54:41VarriountDemos: Ah, finally annotations in java become useful :/
15:54:52Demosit looks like these are really for the kinds of types that you do not want to enforce in all situations. Like dataflow analysis stuff
15:55:11VarriountYet, still no type inference for things like variables.
15:57:23DemosI thought they added that. ofc you need a keyword to say "do inference" because of that stupid C style decl syntax, but then again the rest of us need something like nimrod's var, let, and const keywords
15:57:45Demosone of my favorite quotes about type systems is:
15:58:29Demos"Another myth spread by security researchers is that the planet
15:58:29DemosEarth contains more than six programmers who can correctly
15:58:29Demosuse security labels and information f low control (IFC). This belief requires one to assume that, even though the most popular variable names are “thing” and “thing2,” programmers will
15:58:29Demosmagically become disciplined software architects when confronted with a Dungeons-and-Dragons-style type system that
15:58:29Demosrequires variables to be annotated with rich biographical dataand a list of vulnerabilities to output sinks. "
15:58:42Demoswow sorry for that copy paste mess
16:00:49VarriountDemos: Essentially, security researchers assume that programmers will go to the trouble of writing a large amount information about a specific variable, in order to prevent bugs/security flaws?
16:02:24Demosyeah, or that in general type system nerds say "look at all the bugs we can prevent with all these nifty type system features" and ignore the increased verbosity and decrease in flexability (types nessassarly depend on information about the WHOLE program, which you may not have when using external code)
16:04:32Demosthat quote /is/ from a humor column, but it sums up some real problems with type systems pretty well imo
16:07:24AraqDemos: "waaa programmers are idiots" is a valid argument but you can't do anything by that argument
16:07:31Demosthat is true
16:07:47Araq"waaa nested 'if's will be misused, lets not have them"
16:08:15Demosbut the meat of the argument is that you need to avoid combinatorial explosions related to type qualifiers
16:09:15Demosnow that meat is admittedly later in the paragraph I grabed the quote from but still. One of the reasons I like nimrod is that its type system is more flat than c++'s. Less const (and sometimes volitile) refness combinations
16:09:37Demoshehe linux's 8 space tab style guide ":D
16:13:05SkrylarAraq's new favorite language is Maptool macros
16:13:17SkrylarNon-nesting conditionals \o/
16:13:19Demosand I dont think that the "waaa programmers are idiots" means catoring to the lowest common denominator of programmers. Good programmers have better shit to do than deal with type system explosions
16:14:11Varriountconst volatile restricted private vector<tuple<string, string>> foo
16:15:14Demosnot valid c++ code
16:15:20Demosand private is not a type qualifier
16:15:39Demosrestrict alsot does not really change type compatibility either
16:16:51Demosconst volitile vector<volitile tuple<const string, volitile string>>&& foo a more valid (if dumb) example. And the usual const and non-const overloads are also good examples. As is the issue with std::cout << x where x is like a volitile char
16:18:08VarriountDemos: I made most of what I typed up.
16:18:15Demosand the wierdness with how void foo(int&& p); is not the same as template<typename T> void foo(T&& p) when T is instanciated with an int
16:23:53Demosheh true. and restrict is stupid for other reasons.
16:31:42*DAddYE joined #nimrod
16:34:51*skyfex quit (Quit: Computer has gone to sleep.)
16:36:32*Mordecai joined #nimrod
16:36:50*Mordecai is now known as Guest79651
16:36:55*nolan_d left #nimrod (#nimrod)
16:38:19*psquid quit (Ping timeout: 264 seconds)
16:42:29VarriountANyone here know what "schematicity" means?
16:50:16Araqno
16:52:13*brson joined #nimrod
17:00:02*q66 joined #nimrod
17:29:33*nolan_d joined #nimrod
17:32:12*q66_ joined #nimrod
17:33:00*q66_ quit (Changing host)
17:33:00*q66_ joined #nimrod
17:33:05*q66 quit (Disconnected by services)
17:33:07*q66_ is now known as q66
17:49:41*flaviu quit (Remote host closed the connection)
17:59:25DAddYEAraq: https://github.com/showcases/programming-languages
18:02:37*q66_ joined #nimrod
18:03:06*q66_ quit (Changing host)
18:03:06*q66_ joined #nimrod
18:03:10*q66 quit (Disconnected by services)
18:03:12*q66_ is now known as q66
18:04:11*Demos quit (Ping timeout: 246 seconds)
18:06:26*q66 quit (Client Quit)
18:06:40*q66 joined #nimrod
18:13:18VarriountDAddYE: Why are we at the bottom?
18:13:36VarriountWe're below PHP, for goodness sake!
18:14:17*nande joined #nimrod
18:14:22VarriountHi nande
18:14:26dom96awesome.
18:14:33dom96Varriount: You should be happy we're featured at all
18:14:43VarriountTrue...
18:14:49VarriountBut I want MOAR
18:16:17*hoppecl joined #nimrod
18:16:18nandehi Varriount :)
18:18:11*noam quit (Ping timeout: 246 seconds)
18:20:05*noam joined #nimrod
18:22:57dom96Varriount: Yes, Nimrod should be featured on the front page of Github :P
18:25:21EXetoCof course
18:26:01*noam quit (Ping timeout: 240 seconds)
18:26:19dom96I'm curious which Githubber decided to feature it though.
18:27:42BitPuffinping zahary_ zahary
18:28:26dom96Nice to see that Nimrod's stargaze count is not so far off D's
18:33:21*noam joined #nimrod
18:36:03zaharyhi BitPuffin, what's up?
18:36:15*Matthias247 joined #nimrod
18:37:48EXetoCdom96: woot
18:40:30*zielmicha joined #nimrod
18:47:10nequitansI'm just going to say it: Nimrod code is much easier to read than Python. Here is a little example: I'm porting someone else's python algorithm to Nimrod. I see 'while A' where A is a set. *presumably* this means 'while A is not empty'. I test this out with some basic ipython commands (e.g. set() == True and set([1,2,3]) == True). Both return False! BUT in a while loop it works as expected, lol.
18:49:15reactormonknequitans, I think that's just python's semantics. Ruby e.g. has the same that empty containers are still true
18:50:28Araqnequitans: in python an empty collection indeed is false in an 'if/while' context
18:52:06nequitansintresting
18:52:19Matthias247I think implicit type conversion to bool is confusing in all languages that do it
18:53:19AraqI don't really mind it anymore but no mathematician would ever write 'if x' instead of 'if x != 0'. It's such a basic type error...
18:58:55nandehey guys would it be hard to use openssl at nimrod¿
18:59:57Araqnande: babel itself uses it and the stdlib knows about it
19:00:05nequitansyea i can see how it's a reasonable semantic choice. but right now, it seems like the benefit you get from saving a few characters is not worth the loss of clarity when reading it / having to learn yet another implicit conversion of the language
19:00:56Araqnequitans: the point is to avoid things like if x is not None and x.len > 0:
19:01:20Araqer make that len(x), gosh python sucks :P
19:02:05nequitanslol, yea, it does achieve the unification that both are just "if x"
19:02:50Araqhi hoppecl welcome
19:02:58EXetoCAraq: speaking of which, was len going to work for nil inputs?
19:03:11AraqEXetoC: yes
19:04:04EXetoCyeah well that's a little more verbose than the python way but only just
19:04:45Araqconverter toBool(x: ref|ptr|string): bool = not x.isNil
19:05:20Araqnot that I like it, but nimrod is more flexible than me
19:06:35nequitanslol, with great power comes great coder responsibility :-P
19:07:23EXetoCThat might've seemed like criticism but obviously wasn't
19:07:54nequitans(yea, no criticism intended :))
19:10:47EXetoCno, what I said
19:11:02nequitansah, gotcha
19:36:42BitPuffinheyo zahary
19:36:52BitPuffinany news on #2013?
19:36:57BitPuffin1013*
19:39:51EXetoCit's 62.3% done
19:41:12AraqBitPuffin: join the navy ... er ... vnug
19:43:52nandeAraq: could you be so kind to point me to a link with an example
19:43:52nande?
19:44:26BitPuffinAraq: was just gonna suggest the same thing :)
19:44:54BitPuffinaight I'm in
19:45:52BitPuffindom96: should come too
20:02:15*rndbit quit (Quit: rand() & 1)
20:06:27BitPuffinAraq: you and your lies :P
20:06:54*brson quit (Write error: Broken pipe)
20:07:09*brson joined #nimrod
20:07:59*zahary_ quit (Excess Flood)
20:08:17*zahary_ joined #nimrod
20:11:30*rndbit joined #nimrod
20:11:30*rndbit quit (Excess Flood)
20:13:41*q66 quit (Ping timeout: 252 seconds)
20:26:15*q66 joined #nimrod
20:29:14*Demos joined #nimrod
20:42:06dom96BitPuffin: y u not in vnug
20:42:12dom96er, I mean Araq.
20:42:18BitPuffinI dunno
20:42:20BitPuffinthought I was
20:42:22BitPuffinguess I'm not
20:42:24BitPuffin:s
20:42:41AraqUnreal 4 is out. And it's written in Nimrod :-)
20:42:57BitPuffinyeah fuck no :P
20:43:03BitPuffinjoin the VNUG
20:44:21EXetoCthat must be a lie
20:44:31Matthias247Araq: congrats. You're getting 50% of the royalties now? ;)
20:44:43Araqyup. well they claim it's c++
20:44:53Araqbut it's been translated from nimrod
20:45:16Araqcause it's insane for your productivity these days to use anything else
20:45:19Matthias247probably. Similar what the heise artikel tells what unity5 is doing now
20:45:36Matthias247C# -> IL -> CPP -> LLVM (emscripten) -> JS
20:55:05BitPuffinAraq: get yo ass in the VNUG damn it :P
20:55:07BitPuffinwe are 3 in there :P
21:00:16dom96I wonder where filwit is
21:00:23dom96Haven't seen him in a while.
21:00:26dom96!seen filwit
21:00:26NimBotfilwit was last seen on Tue Mar 11 00:28:25 2014 quitting with message: Quit: Leaving
21:03:14Araqwho is number 3?
21:03:21BitPuffinAraq: Demos
21:06:25*Endy quit (Ping timeout: 240 seconds)
21:11:50BitPuffinAraq: come on :P
21:11:56BitPuffinAraq: we can try and debug the mac os x thing
21:13:03Araqok
21:14:46EXetoC!seen bacon
21:14:46NimBotI have not seen bacon
21:15:23EXetoCMatthias247: some chain
21:17:27EXetoCis it only applied for releases? I wonder how much overhead it incurs
21:18:26EXetoCat compile-time that is
21:20:54BitPuffinAraq: status? :P
21:24:42*holly_ joined #nimrod
21:24:55Araqhi holly_ welcome
21:25:04AraqBitPuffin: teamspeak still doesn't like me ...
21:25:58EXetoCwhy not? have you tried patching the exe?
21:26:42BitPuffinAraq: I can here your computer :P
21:26:57Araq*hear
21:27:15EXetoCdoes it talk?
21:28:44BitPuffinyeah ofc
21:29:39NimBotAraq/Nimrod devel 9ef0bcc Audun Wilhelmsen [+1 ±7 -0]: Added support for {.packed.} pragma on objects... 1 more lines
21:29:39NimBotAraq/Nimrod devel 0c0bc8c Audun Wilhelmsen [+0 ±1 -0]: Fix compilation error when using packed pragma with vcc.
21:29:39NimBotAraq/Nimrod devel 7323cc7 Andreas Rumpf [+1 ±7 -0]: Merge pull request #1014 from skyfex/devel... 2 more lines
21:39:38holly_hi i was just trying to find a new low level language
21:39:56holly_saw nimrod on a dr dobbs advert
21:41:16holly_been reading various stuff on the web about nimrod,d,rust,go etc.
21:41:29OrionPKwelcome holly_
21:42:17holly_it's funny that nimrod isn't listed on wikipedia, i like that
21:43:56EXetoCit is high level too. I hope you don't mind
21:44:08holly_the nimrod code on the level generation benchmark webpage seems the clearest of all
21:44:13EXetoCyeah, it was taken down some time ago
21:55:59*hoppecl quit (Quit: Lost terminal)
21:56:23*Demos_ joined #nimrod
22:01:29*nolan_d left #nimrod (#nimrod)
22:02:18Demos_nimrod is a wonderful low level language
22:05:35Demos_there are several people here who have backgrounds in D, I think a few from rust.
22:07:48nequitansHi holly_, I have been using Nimrod for all sorts of tasks successfully from low level (e.g. pointer arithmetic, manual memory management) to high level (concise representations of graph algorithms like flows and clique-finding). You get the high level of modern scripting languages with low level capabilities, and a lot of expressive power
22:10:11Demos_you also get all the nice quality of life stuff from scripting languages. Like modules, a simple way to build your app, and fast iteration.
22:10:16Demos_and a package manager
22:11:57nequitansNimrod should eventually have a wikipedia entry given the other much less notable stuff that makes it there.. I assume it's just a matter of time and getting more attention to the language
22:12:54Demos_it used to. But the deletionists came and took it down. Wikipedia is a crappy source of info on programming topics
22:18:52BitPuffinping zahary Araq wants you
22:19:03BitPuffinto help out with a mac thing
22:19:14BitPuffinI guess Is hould ping zahary_ too
22:19:55BitPuffinDemos_: are you still eating?
22:20:15Demos_yeah, I can hurry back if yall need me
22:21:49holly_github babel wouldn't compile on my freebsd, perhaps because it needs 0.93 and i've only got 0.92
22:21:50*q66 quit (Ping timeout: 252 seconds)
22:22:07*EXetoC quit (Quit: WeeChat 0.4.3)
22:22:12*q66 joined #nimrod
22:22:42Demos_give the version from the devel branch a shot. A lot of bugs have been fixed since 0.9.2
22:22:56BitPuffinDemos_: no rush, it's not good to rush your food down :P
22:23:12Demos_I have an openBSD vm that I can try and get nimrod working in if that fails
22:23:15BitPuffinholly_: don't use 0.9.2
22:23:20BitPuffinwe really need a disclaimer on the website
22:24:45*EXetoC joined #nimrod
22:25:42Demos_OK on my way back to my desktop
22:30:21*Demos_ quit (Ping timeout: 265 seconds)
22:34:23*holly_ quit (Ping timeout: 245 seconds)
22:41:08*Demos quit (Read error: Connection reset by peer)
22:46:15*Demos joined #nimrod
23:06:14*brson quit (Ping timeout: 246 seconds)
23:06:44*brson joined #nimrod
23:12:59*Demos quit (Ping timeout: 240 seconds)
23:15:11*Demos joined #nimrod
23:15:27*xenagi joined #nimrod
23:20:43NimBotAraq/Nimrod devel c74b7bf Zahary Karadjov [+2 ±10 -0]: reference implementation of a vector swizzle library... 3 more lines
23:20:43NimBotAraq/Nimrod devel b5e774d Zahary Karadjov [+1 ±1 -0]: fix #1013
23:20:43NimBotAraq/Nimrod devel eee8851 Zahary Karadjov [+0 ±5 -0]: implements ``distinct with/without X, Y``... 4 more lines
23:23:28fowlcan we just make a special case 0.9.3 release
23:28:23*q66 quit (Ping timeout: 252 seconds)
23:30:42*eigenlicht quit (Ping timeout: 264 seconds)
23:41:06*q66 joined #nimrod
23:42:41*eigenlicht joined #nimrod
23:49:06*darkf joined #nimrod
23:58:07BitPuffinAraq: well I guess we are gonna have to force zahary to try it, because it didn't happen on Demos' hackintosh
23:58:58Araqfowl: I'm thinking about skipping 0.9.4 and releasing 0.9.6 instead
23:59:23dom96what would be the point of that?