<< 02-06-2013 >>

00:17:21reactormonkAraq, maybe
00:17:30reactormonkgotta say I hoped for it
00:22:45tangentstormhttp://i.imgur.com/Ii5X3oJ.png <- bf debugger + syntax highlighter :)
00:22:53tangentstormactually not quite a debugger yet.
00:23:19tangentstormhow would i do ReadKey() in nimrod? terminal doesn't seem to support the keyboard stuff.
00:31:04reactormonktangentstorm, read up on readline I'd say
00:32:57tangentstormhrm. i try to avoid the GPL. maybe i'll try wrapping my pascal stuff as a library for nimrod though.
01:22:30*erlnoob joined #nimrod
01:49:38*q66 quit (Remote host closed the connection)
03:17:37*SirSkidmore is now known as SirSkids|Zzz
03:38:40*ARCADIVS joined #nimrod
04:09:33reactormonkAraq, so no sweet C type import?
04:19:46fowltype prog_char {.importc: "that".} : cchar ?
04:19:58reactormonkfowl, I want to import the type
04:20:01reactormonk prog_char {.importc:"PROGMEM prog_char", header: "avr/pgmspace.h".} # a signed char (1 byte) -127 to 128
04:20:15reactormonkoh, I see
04:20:42*OrionPK quit (Read error: Connection reset by peer)
04:21:08reactormonkdistinct pointer or similar
04:21:54reactormonkwhat's the difference between word and dword?
04:23:00fowlreactormonk, i dunno what you want from me, just wrap strcpy_P and like functions and use them like in the examples
04:23:46fowluhhhhhh dword is twice as long as a word iirc
04:23:55fowlword = 32bit, dword = 64
04:24:12fowlcheck that out tho i dunno
04:24:23reactormonkdouble word then?
04:25:02fowlidk
04:25:26fowlA DWORD is a 32-bit unsigned integer (range: 0 through 4294967295 decimal).
04:25:46fowlword = 16bit unsigned
04:33:14*tangentstorm quit (Ping timeout: 252 seconds)
04:50:15*zahary__ joined #nimrod
04:53:14*zahary_ quit (Ping timeout: 256 seconds)
05:08:19*Trix[a]r_za is now known as Trixar_za
06:07:35reactormonkAraq, or is it possible to have two distinct kinds of pointeres?
06:07:38reactormonk*pointers
06:10:05*SirSkids|Zzz quit (*.net *.split)
06:18:38*SirSkids|Zzz joined #nimrod
06:58:49*Trixar_za is now known as Trix[a]r_za
07:19:17*tangentstorm joined #nimrod
07:37:30*fowl quit (Ping timeout: 252 seconds)
07:50:08*fowl joined #nimrod
08:12:09*amarsahinovic joined #nimrod
08:29:01*amarsahinovic quit (Quit: Leaving.)
08:42:12*Endy joined #nimrod
08:45:51*amarsahinovic joined #nimrod
09:10:19*[1]Endy joined #nimrod
09:11:26fowlreactormonk, if you can do distinct pointer, (i dunno if it works), another distinct pointer will be distinct from it
09:12:22*Endy quit (Ping timeout: 252 seconds)
09:27:10*fowl quit (Ping timeout: 245 seconds)
09:40:05*fowl joined #nimrod
09:50:22*Endy joined #nimrod
09:53:04*[1]Endy quit (Ping timeout: 276 seconds)
09:56:45*Endy quit (Ping timeout: 256 seconds)
10:05:53*erlnoob quit (Quit: erlnoob)
10:12:41*Endy joined #nimrod
10:16:37*zahary joined #nimrod
10:18:55*Endy quit (Ping timeout: 252 seconds)
10:27:21*zahary quit (Ping timeout: 256 seconds)
10:37:18*q66_ joined #nimrod
10:41:27*q66_ is now known as q66
11:54:50*ARCADIVS quit (Quit: WeeChat 0.3.8)
12:00:10*Endy joined #nimrod
13:15:55*SirSkids|Zzz is now known as SirSkidmore
13:24:23*erlnoob joined #nimrod
13:56:00*[1]Endy joined #nimrod
13:58:19*Endy quit (Ping timeout: 246 seconds)
14:39:23*OrionPK joined #nimrod
14:42:10*[1]Endy quit (Ping timeout: 245 seconds)
15:22:38*erlnoob quit (Quit: erlnoob)
15:25:34*Endy joined #nimrod
15:26:33*JesseH joined #nimrod
16:17:28JesseHThe readme said to do "koch install [dir]", how do I do that? What do I replace [dir] with?
16:22:36OrionPKthe path of your bin folder
16:23:06OrionPKwhere the nimrod exe is
16:27:06JesseHlinux
16:27:44reactormonkJesseH, which one?
16:27:52JesseHHuh?
16:27:56JesseHWhich one what
16:27:59reactormonkJesseH, which linux
16:28:08JesseHubuntu 12.04
16:28:29JesseHill just set path
16:28:37reactormonkthat's what I did
16:30:02JesseHAwesome, its working
16:30:24JesseHWhere can I find some benchmarks of Nimrod vs other languages?
16:31:49Araqthere are benchmarks on bitbucket, dunno if the guy kept the results up to date
16:33:09JesseHalright
16:33:36Araqmost benchmarks I encounter are quite stupid though
16:34:15Araqlike testing "hash table speed" of builtin hash tables
16:37:45Araqwhich doesn't make much sense for systems programming languages as you can easily implement the very same algorithm that e.g. Python uses
16:48:50reactormonkAraq, what's the total average size of all error messages in the stdlib?
16:49:12reactormonkless than 2k? Then I'll try and see if I can get it to run with RAM strings
16:49:17*JesseH can't get nimrod installed.
16:49:34JesseHI guess it's a lack of knowledge...never used koch before.
16:49:49reactormonkJesseH, unzip the c sources, build.sh ./koch boot then link ./bin/ to $PATH
16:50:18Araqor run the install.sh script
16:50:20JesseHI see no c sources
16:50:28JesseHAraq, with what arguments?
16:51:04reactormonkJesseH, cd build && unzip csources.zip && cd .. && ./build.sh && ./koch boot
16:51:25JesseHno csources.zip
16:52:03Araqinstall /opt
16:52:14Araqinstall /usr/local
16:52:17Araqinstall /usr
16:52:50reactormonkJesseH, did koch boot work?
16:59:58*gradha joined #nimrod
17:00:16Araqgradha did it!
17:00:21gradhawhat?
17:00:31Araqwith you there are 30 people in here
17:00:42gradhaah, another penis length contest
17:00:45JesseHreactormonk, yeah
17:00:56gradhawant me to log out?
17:01:17gradhathen logging back in will be like another party
17:01:28OrionPKis that counting nimbot?
17:01:29OrionPK;)
17:01:46gradhayou are going to hurt dom96's feelings
17:01:59reactormonkJesseH, then try if bin/nimrod works and just add that to your PATH
17:03:51gradhaindeed, I just add ~/project/nimrod/root/bin to my $PATH, no install needed
17:04:27gradhabtw, NimBot is being a bad boy, http://build.nimrod-code.org/irclogs/01-06-2013.html returns a 404
17:05:21dom96NimBot is a good boy. It's nginx that is being bad.
17:06:30dom96gradha: fixed.
17:07:00gradhahmm, so I did actually use irc yesterday
17:07:24dom96Now Nimbuild is being bad: http://build.nimrod-code.org/irclogs/30-05-2013.html
17:07:34dom96jester to the rescue though!
17:08:08gradhabackwards compatibility is always problematic
17:10:58JesseHnimrod is in my usr/bin
17:11:06JesseHstill doesnt wor
17:11:08JesseHwork*
17:11:23gradhadoes it refuse to run?
17:11:53JesseHIt will run in certain folders
17:12:14JesseHbut I created a folder, to hold all my nimrod code and "bash: bin/nimrod: No such file or directory" comes up when I run nimrod
17:12:18reactormonkAraq, oh, I just got an internal assert :-)
17:12:20dom96There we go, all fixed.
17:12:56dom96JesseH: Why don't you just add it to your $PATH?
17:13:25JesseHI did
17:13:30reactormonkdom96, could you compile http://sprunge.us/WQTI ?
17:13:32gradhaJesseH: I believe bash does some weird path caching, can you open a new session and run nimrod there?
17:13:37reactormonkJesseH, which nimrod
17:13:45JesseHonesec
17:14:05gradhasometimes when I remove a binary from the $PATH in another session bash sitll "remembers" it was there, so it fails running it
17:14:38*amarsahinovic quit (Quit: Leaving.)
17:14:45dom96reactormonk: Could I compile it? Sure. But from the looks of it, the generated C wouldn't compile? Why do you want me to compile this?
17:15:09reactormonkdom96, nah, it doesn't compile on the nimrod side.
17:15:17JesseHworks now
17:16:42gradhaJesseH: cool, so what amazing stuff are you planning to use nimrod for?
17:17:00JesseHmmofpgrpsOS
17:17:05dom96reactormonk: indeed. Nimrod compiler crashes.
17:17:15JesseHgradha, I joke :P
17:17:32reactormonkdom96, I assume it doesn't like my template there
17:17:35gradhaI don't know even what that is, maybe you have a cat running on your keyboard?
17:18:04JesseHgradha, It was a joke, about creating a MMO-FPS-RPG-operating system ;P
17:19:05gradhathat would be really problematic, like, you have to fsck to get experience to level up and run cp?
17:19:39JesseH;P
17:19:47gradhahmm... but FPS doesn't go well with commandline
17:22:45reactormonkAraq, any comments?
17:23:07gradhaJesseH: wrt to benchmarks, I'm sure that if you find nimrod being "slow" anywhere people around here will jump on your problem like hungry chihuahuas
17:23:18Araqcrashing compiler screams "bug report", reactormonk
17:23:50dom96gradha: Don't be silly, that will never happen.
17:24:02JesseHI like finding a language to learn, THEN finding a project to learn it with. I was told that, that wasn't the norm ;P
17:25:06Araqnow that's easy, JesseH; Nimrod still needs parser generators, so there. Write one.
17:25:08reactormonkAraq, is the emit template legit?
17:25:32AraqI don't think so
17:25:35JesseHAraq, Maybe
17:25:50Araq'emit' produces a void context
17:25:58gradhaJesseH: I fancy http://www.complang.org/ragel/ to output nimrod code
17:26:36gradhayou could go either bind the generated C to nimrod or generate directly nimrod code from ragel
17:26:59reactormonkAraq, well, it's a C macro that needs a string literal.
17:28:07gradhadom96: does the live online forum feature the recent merges?
17:28:22dom96gradha: not yet, no.
17:28:52dom96i'll update it now :)
17:29:04JesseHIs there sdl bindings yet?
17:29:22reactormonkAraq, any way I can get the nimrod compiler to emit PSTR("foobar") and not some STRING_LITERAL ?
17:29:22dom96JesseH: yep, sfml too.
17:29:29JesseHAwesome
17:29:38JesseHopengl, I would assume
17:29:40JesseHtoo
17:29:43dom96indeed
17:30:26JesseHAny good examples of embedding lua in nimrod?
17:31:15reactormonkAraq, when changing the template to a proc, it gives me 'constant expression expected'
17:34:22AraqJesseH: examples/luaex.nim contains a basic example
17:47:10fowlJesseH, i wrote a whack lua editor a long time ago https://gist.github.com/fowlmouth/f6c2b949674322ab3db5
17:47:40JesseHinteresting
17:49:33fowlthat code is old though and wont compile on 0.9.2
17:51:34fowlalso, i dunno if anybody said this yet, but to "install" nimrod on linux all you have to do is symlink the binary on your path
17:58:18Araqreactormonk: template mystr(a, b: expr) {.immediate, dirty.} =
17:58:20Araq {.emit: "progchar " & astToStr(a) & "[] PROGMEM = " & astToStr(b) & ";".}
17:58:22Araqmystr(name, "value")
17:58:37Araqdoesn't work for now, I'm about to push a patch so that it does
18:00:42reactormonkAraq, so no value context?
18:04:09Araqno value context
18:05:19AraqI guess we could provide SomeType({.emit: "".}) so that you can tell the compiler the supposed type of the 'emit' pragma but I don't know how hard that would be to implement
18:05:39reactormonkok
18:08:24gradhaamazing, html frameset doesn't allow embedding the source code, you are forced to use separate files
18:09:01dom96new forum is up
18:10:40fowlyou should put the login form in a floating (hidden) fieldset and show it when you click on login
18:11:04fowlinstead of having a separate, mostly empty page for it
18:11:40Araqdom96: excellent work, dev docs points to the proper site finally
18:11:48dom96Araq: thank gradha not me :P
18:12:09gradhadom96: why are you compressing the last reply column with the dates, to force three rows?
18:12:16Araqgradha: excellent work, does that mean every new message is subject to the new license?
18:12:21dom96fowl: I'd say showing an rst cheatsheet inline is more important. However, pull requests are always welcome.
18:12:31gradhaAraq: not yet, you still own what you post
18:12:45Araqalright
18:13:04fowlhttp://build.nimrod-code.org/docs/overview.html has no css
18:13:24dom96gradha: huh? i'm not sure what you mean.
18:13:49gradhaAraq: after the license change all posts will be copyright The Nimrod Forum Coalition, with express rights granted to some gradha user
18:14:27gradhadom96: in http://forum.nimrod-code.org the "last reply" column is forced to three lines, if I remove the restriction everything fits in a single line and the table is more compact, fits better in height
18:14:51fowldom96, the last reply column is size limited, so UTC is on a new line, causing the rows to be 3 lines long
18:16:17dom96hrm, am I the only one who keeps his browser window maximised or is your screen resolution just really small?
18:16:38dom96it fits on two lines for me.
18:17:04Araqfowl: no css for the overview is a feature
18:17:16Araqthe documentation is not the same as the website
18:17:18dom96I was planning on changing it so that it's something like "5 hours ago by someone"
18:17:26fowlyes i have a small screen
18:18:02dom96But that in fact requires some additions to the times module.
18:18:27fowlwhen i maximize its on two lines
18:18:44dom96maybe a babel lib would suffice
18:18:46dom96bbl
18:21:34gradhadom96: here's what I see http://dl.dropboxusercontent.com/u/145894/t/threelines.png note now much space is wasted on the topics column, the last reply column is compressed and forces three lines of text
18:22:11gradhaif I remove the constraint and let the last column resize it fits all in a single line, though then it looks a little bit compressed, so maybe it was a deliberate style decission
18:26:28*Mat2 joined #nimrod
18:26:32Mat2hello
18:26:47gradhawelcome Mat2
18:30:28Araqhi Mat2, wb
18:31:50Mat2at current I'am beginning to port parable (http://www.forthworks.com/) to C via nimrod
18:33:22gradhaif you make it work with nimrod's javascript backend you will have to javascript ports then
18:38:03Mat2a javascript implementation exist already, I'm more interested adding AOT compilation
18:38:50dom96gradha: I never actually tested it at that low a resolution, so it's kind of a bug. But as I said, I was planning on changing the format of that anyway.
18:42:14fowlwhats AOT
18:42:30Araq"ahead of time"
18:42:42Araqas opposed to "just in time" (JIT)
18:44:16gradhait's like... whatever it has always been, plain normal compilation
18:44:22fowlo
18:47:02Mat2yes, but in a dynamic context
18:59:04*fowl quit (Ping timeout: 276 seconds)
19:12:31*ty-mat quit (Ping timeout: 264 seconds)
19:13:57*tymat joined #nimrod
19:24:22*Endy quit (Quit: HydraIRC -> http://www.hydrairc.com <- Po-ta-to, boil em, mash em, stick em in a stew.)
19:47:13*[1]Endy joined #nimrod
19:49:49*[1]Endy is now known as Endy
19:53:19NimBotAraq/Nimrod master c25657e Araq [+0 ±1 -0]: next steps to a luajit codegen
19:53:19NimBotAraq/Nimrod master 14a9fee Araq [+0 ±4 -0]: astToStr is now immediate
19:53:19NimBotAraq/Nimrod master 61690a3 Araq [+0 ±1 -0]: Merge branch 'master' of github.com:Araq/Nimrod
19:55:19*Endy quit (Ping timeout: 246 seconds)
20:04:04reactormonkAraq, you say now it works?
20:04:58*fowl joined #nimrod
20:05:04Araqthe template I gave now works
20:07:52JesseHDoes nimrod have curses bindings?
20:08:03reactormonkJesseH, iirc yep
20:08:07reactormonkif not, there's c2nim
20:08:22fowlno
20:09:04fowltheres a pdcurses for windows and i started on ncurses but havent worked much on it
20:09:11reactormonkAraq, the problem with immeditate emit template is that it gets emitted the momemnt it is evaluated
20:09:19reactormonk#include "nimbase.h"
20:09:22reactormonkprogchar foo[] PROGMEM = "bar";static N_INLINE(void, initStackBottom)(void);
20:09:24reactormonkN_NOINLINE(void, setStackBottom)(void* thestackbottom);
20:12:38dom96Anyone need something to do?
20:12:59reactormonkdom96, outsourcing?
20:13:28Araqdom96: please implement 'diff' for nimbuild
20:13:43dom96reactormonk: huh? no?
20:14:25dom96Was going to suggest for someone to clean up the logging module and finally put it in the stdlib
20:15:16dom96Araq: i'm cleaning up babel currently
20:16:35*exhu joined #nimrod
20:16:41exhuhey, Araq!
20:17:09Araqhi exhu
20:17:54JesseHhow do I get vim syntax highlighting for nimrod
20:18:06JesseHHow do I get nimrod syntax highlighting for vim*
20:18:12JesseHI mix up sentences :/
20:18:24exhuvar arguments generate illegal capture when in closure. But if I know the lifetime of the closure is limited to the function how can I circumvent this limitation?
20:19:05AraqJesseH: https://github.com/zah/nimrod.vim
20:19:30Araqexhu: capture 'ptr' instead
20:19:39gradhaJesseH: you don't get just syntax with that, you get the ability to jump around code too
20:19:50JesseHAwesome
20:20:40fowlhttps://gist.github.com/fowlmouth/88da0f8be5e92a149dcb ncurses wrapper
20:20:40gradhalook at the :call JumpToDef() macro, it invokes nimrod's idetools command, which returns the file/line/col of whatever you are at
20:20:48fowlim going to work on it a bit today
20:22:06exhuAraq, it works, thanks
20:22:18gradhaJesseH: btw, did you look at Aporia? It's the official IDE for nimrod
20:22:34JesseHI use vim and gedit for editing stuff
20:22:41JesseHWhat's the IDE got?
20:22:48gradhano idea, doesn't compile for me
20:22:52Araqaporia is a much better gedit than gedit is
20:23:14exhuAraq, are multimethods optimized now, or I better use objects of procvars?
20:23:31Araqnot optimized but people prefer them
20:23:46Araqand it shouldn't matter for a UI
20:24:26Araqon the other hand getting dead code elimination for them to work looks like a though problem
20:24:58Araqso I suppose you should go with a streams-like approach
20:26:35*JesseH wonders if nimrod will oneday replace c
20:26:58gradhait compiles to c, so... no?
20:27:00exhuAraq, i've recently liked closures much so that feel like using procvars more.
20:27:06JesseHOh right, didnt know that
20:27:07JesseHoh well
20:27:36gradhanote that it's perfect, you get C portability but without ugly C
20:27:46apotheongradha: . . . except when compiling.
20:27:48gradhaso indeed you could say it replaces C
20:27:55apotheonNimrod doesn't have to compile to C forever, though.
20:27:57exhuJesseH, C today is like assembler some 20 yrs ago -)
20:28:03apotheonIt could eventually go the direct route.
20:28:30gradhait will once it takes over the world
20:29:00*JesseH installs aporia
20:29:02gradharather than going upwards, nimrod developers will on each release develop more to the hardware, to finally make a nimrod which outputs a computer
20:29:06exhuBTW i use clang on linux and mac, it compiles 1/3 faster than gcc
20:29:41fowlits still clang
20:29:48fowlthats the hipsters' c compiler
20:29:52JesseHviva revoltion?
20:29:55JesseH\o/
20:29:55exhuclang as nimrod's backend I mean
20:30:01apotheonexhu: I'm a fan of Clang.
20:30:23apotheonEven if it compiled 20% slower, I'd still like it more than GCC for the other characteristics of the compiler relative to GCC.
20:30:47exhuapotheon, but i generates slower code than gcc -) i'm not a fanatic of both, just developing times are smaller with clang
20:31:29apotheonThat's not the only reason.
20:31:33gradhaapotheon: haven't been looking at fancy compiler features, what's the deal with clang over gcc? and are those features relevant to nimrod?
20:32:01apotheonMeasuring development times solely by compile times comes with an implicit assumption of perfect coders to isolate the compile time variable.
20:32:44apotheongradha: It's not too much about "fancy" compiler features. It's about things like a better architecture (good for future development and extension), better error and warning output, and fun stuff like that.
20:32:58apotheongradha: It's also better at adhering to C standards.
20:33:13apotheonGNU has some NIH issues.
20:34:24JesseHHow do I install once i've built aporia? Just set path?
20:34:58gradhaI'd first try running it, and if it works, yeah, copying somewhere of your path or changing the path to it should work
20:35:08exhuapotheon, compilation time matters for me, because i have little free time and vigour for hobby projects, i spend hours waiting till compilation finishes at work (big c++ project), and while compilation is going on I cannot use the machine for other tasks to finish the work and go home earlier.
20:35:26Mat2apotheon: gcc generate better optimizated code (my experience), however the source-code is somewhat messed
20:35:33apotheonexhu: I agree compilation time matters. I'm just saying that the other benefits are great, too.
20:36:20apotheonexhu: For instance, cryptic error messages from GCC can increase the time I waste diagnosing errors significantly -- which also cuts into the free time one has for hobby projects.
20:36:32JesseHgradha, it does work
20:36:38JesseHIs it too soon to get a nimrod tattoo
20:36:38apotheon(regarding "big C++ project" . . . is there any other kind?)
20:36:56exhuapotheon, i've never seen cryptic messages for C sources, only C++ ones.
20:36:58apotheonMat2: Yeah, agreed.
20:37:08apotheonJesseH: It's too soon.
20:37:22JesseH:
20:37:23JesseH:(
20:37:29apotheonexhu: Do side-by-side comparisons of error output from Clang and GCC. It's interesting.
20:38:06*apotheon is very conservative about tattoo decisions, preferring the over-cautious approach to the over-enthusiastic.
20:38:14exhuapotheon, i use msvc and clang at work, so i can't :)
20:38:35apotheonThat's why I don't actually have any tattoos. By the time I might have decided it was time to get a tattoo, I've had enough time to think of the downsides for that particular tattoo.
20:38:44apotheonexhu: That changes things.
20:38:53JesseHWhat are the downsides to a nimrod tattoo xD
20:39:01exhuapotheon, i can tell the msvc compiler sucks both in compilation time, error messages and crashes sometimes vs clang.
20:39:10gradhaJesseH: I believe the only dependency for aporia are the dynamically loaded gtk libs, as long as those are somewhere the binary should work everywhere (I think)
20:39:15fowlnimrod tattoo lol
20:39:30gradhaJesseH: dom96 is the mastermind behind Aporia, you can nag him about more detailed stuff
20:39:39JesseHdom96, gimme yo knowledge
20:39:47gradhaJesseH: like how to get suggestions working, so it completes as you type
20:39:56exhuapotheon, and clang's code completion and analysis features are fantastic (xcode uses it).
20:40:02Araqgcc used to produce a faster nimrod than clang, the gap closed recently
20:40:15JesseHI think I tried cp-ing the binary somewhere, and it didnt want to run
20:40:20*dom96 hides
20:40:43fowlJesseH, symlink it
20:40:50apotheonexhu: That's another one of those nice characteristics of Clang.
20:40:52gradhaJesseH: did it say something about why it didn't want to run?
20:40:52fowlln -s /path/to/nimrod/bin/nimrod ~/bin
20:41:05dom96JesseH: You need the share/ folder too.
20:41:06fowler dont use ~/bin use /home/me/bin or wherever your local bin is
20:41:36dom96symlinking or simply adding the directory where you cloned the repo is a good idea since you can then easily update it
20:41:53dom96*adding the directory to your $PATH
20:42:40exhuapotheon, i've recently seen a c++ 11 features presentation, i hate c++ even more now, great there's nimrod -)
20:42:53fowli also keep the tagged versions symlinked as nimrod0.9.0
20:42:55dom96Also when it comes to suggest, it's still not good enough to be enabled IMO.
20:43:01apotheonI like having a separate executable from where I've downloaded, in case I want to wipe out the build directory for some reason.
20:43:41apotheonexhu: I haven't seen C++11 presentations, but yeah, I'm glad there's Nimrod -- in part because that makes it easier to avoid C++.
20:44:40Araqexhu: hu? what's not to like about C++11?
20:44:52Araq(except that it's still C++ of course)
20:44:54Mat2exhu: C++ is the brainfuck version of PL/1
20:45:38AraqPL/1 is the poor version of Algol
20:45:55Mat2*lol*
20:45:59exhuAraq, c++ added just more features to already bloated lang
20:46:13exhuAraq, c++ iterators are still shitty
20:46:41apotheon"Look, we added new stuff!"
20:46:47apotheon"Why does it suck as much as the old stuff?"
20:46:59apotheon"You can still use the old stuff if you prefer!"
20:47:19fowllol
20:47:19apotheon"Oh -- so now we're 'improving' C++ the same way PHP's core team 'improves' PHP? Good job."
20:47:33*apotheon facepalms.
20:48:06AraqI like C++ on a theoretical basis :P
20:48:17Mat2I'm not
20:49:05exhuapotheon, myrriads ways to do the same thing, and so they added one more dialect to choose for a new project, like some teams use only C with classes, some use boost, some use Qt as sublanguage...
20:50:02Araqyeah but that's way better than Java where the only way to do things sucks
20:50:07apotheonhar
20:50:56exhuAraq, java is plain simple and that's why it's easy to read, refactor and catch on alien code.
20:51:09apotheonIt's not so much that there's only one way to do things in Java as that the design of the language ensures all ways to do something will be gimped in much the same ways, and if you choose any way other than the orthodox way you'll be tarred, feathered, run out of town on a rail, then released into a game preserve to be hunted down and beaten, before finally being burned at the stake.
20:51:54apotheonPython is more "one way to do things", where the one way ensures that there are a lot of things you can't really do very easily. The answer to that, of course, is that you shouldn't write software that does those things anyway, because it's not the One Right Way To Do It.
20:51:59JesseHPressed F5 and now this bar keeps moving saying executing >_>
20:52:14apotheonEvery language community has its stupidities. You just have to find those that annoy you least.
20:52:24exhuAraq, the only way to do things makes programs compile faster, java's jit is impressive because it gets the patterns.
20:52:44fowlJesseH, may be hanging on input?
20:52:55JesseH:/ it didnt echo nothing out yet though
20:53:01JesseHhttp://nimrod-code.org/tut1.html
20:53:13gradhaJesseH: or maybe it doesn't find the compiler in the path?
20:53:28apotheonexhu: JVM is mostly impressive because of its continuous optimization -- which is handy for specific types of software, but not for everything (or for most things).
20:53:29JesseHHmmmm
20:53:34fowldont run that in aporia, you cant access stdin
20:53:42JesseHOh okay
20:53:51apotheonShort-running processes are the wrong things to build in Java.
20:53:52*JesseH sticks to terminal for running
20:54:06Araqexhu: I disagree, the worst code bases I've seen were in Java ... or perhaps smalltalk
20:54:21Araqthat java is "simple" doesn't help the resulting messes
20:54:34exhuapotheon, i wrote an image conversion benchmark in plain c++, pascal, java, nimrod, luajit. java's version starts and does the job the faster than others being a dead simple source code.
20:55:38exhuAraq, worst java code is easier to modify and debug than c++ ones, i've worked on a number of c++ projects, it's all hell.
20:55:38apotheonexhu: I haven't done any image conversion benchmarks. I have, however, run very simple programs on the JVM, and the wait for them to spin up is interminable. If they have to repeat a million times without having to spin up each time, it gets fast, though.
20:55:55apotheonHah. Comparing C++ and Java.
20:56:10apotheonNimrod > both.
20:56:21apotheon(from what I've seen so far)
20:56:26apotheon(I'm not exactly an expert, yet.)
20:56:52Araqexhu: was that before luajit got allocation sinking?
20:57:29gradhaexhu: on my machine anything java related runs as if I didn't have an SSD
20:58:02exhuapotheon, 1) nimrod, 2) java, 3) freepascal, 4) C, 5) c++ --- in the order of my preference :)
20:58:11apotheonexhu: Are you running Java on eight-core machines with 8GB RAM?
20:58:35apotheonI'm on a two-core laptop with 4GB RAM.
20:58:35_ponceC++ feels suprisingly complete and thought out albeit superficially ugly.
20:59:05_poncewell except with newer stuff like lambdas which cannot be templated
20:59:09gradhaexhu: did you compare your benchmarks to other available software like maybe ImageMagick? just for reference
20:59:20apotheonI prefer C over Pascal, mostly because there are things I can do in C that it would be silly to do in Pascal, and the things that Pascal does better than C I'd rather do in a different language than either of them.
20:59:42dom96I'm on a computer with 2GB of RAM. Running anything JVM related makes everything incredibly slow.
20:59:43gradhaexhu: or maybe python's pil, which people say it's good
21:00:00exhuapotheon, no i run jEdit on core2duo machines -- laptop and desktop (E6300 1.8 ghz desktop assembled in 2006 with 5 GB ram 64-bit ubuntu, 2.4 Ghz core2duo laptop 2008, 2 GB ram 32-bit xubuntu)
21:00:03apotheondom96: My point exactly.
21:00:14apotheonexhu: You must have a Magical JVM, then.
21:00:18Mat2hmm, I am think of C as some kind of macro assembler with ugly syntax
21:00:29apotheon. . . or I'm doing something wrong, perhaps.
21:00:43apotheonIf so, though, I'm not the only one doing something wrong, because these are common complaints.
21:00:47fowlim more opposed to java code, as i have yet to see any that doesn't disgust me
21:01:00apotheonfowl: Yeah, I'm not a huge fan of Java code, either.
21:01:12apotheonIf I was convinced to use the JVM, I'd probably use Scala instead of Java.
21:01:22Araqassemblers have reasonable semantics which are not full of holes, Mat2
21:02:02exhuapotheon, openjdk7. jEdit is fast with Swing theme (not GTK!) although eats 200 mb ram -) Java runs slow on my Windows 7 64-bit Core i5 35xx at work, though.
21:03:09Araqexhu: I heard you can inspect the asm the JIT generates, would be very interesting to compare the generated asms
21:03:28reactormonkAraq, is the template problem fixable? issue?
21:03:29Mat2Araq: Agree, C is somehat more portable though
21:03:37exhuAraq, i looked for generated asm in the internet, did not find a way to get it.
21:04:20dom96If it wasn't for the resource hungry nature of the JVM I might actually use it. But thinking about it now, it's not just that. I also dislike dependencies and the JVM is a big dependency.
21:04:22fowl_ponce, https://github.com/fowlmouth/cpptranny#type-declaration-syntax
21:05:54apotheondom96: The mythic portability of Java depends on the JVM, of course -- and the JVM itself has some portability problems.
21:06:10exhudom96, yea, but .net is even worse :) jvm may be good for servers, it's not for desktop anyway, because jit halts, and the memory footprint is mainly beacause of jit.
21:06:11apotheonStupidly, some of the portability issues are based on licensing rather than technical limitations.
21:06:34apotheonexhu: I'd probably rather use the JVM than .NET, but I don't want to use either, so it's kind of a moot point.
21:06:45dom96exhu: why is .net worse?
21:06:51*gradha quit (Quit: bbl, have youtube videos to watch)
21:06:53fowldom96, sometimes when i click the right arrow in aporia to get to the last tab it closes
21:07:23fowli dunno if it crashes though because i never launch from the terminal so i dont see output >_>
21:07:29exhuapotheon, the sad story there's been no good native platform until nimrod appeared, it's either jvm or c++ hell.
21:07:30dom96fowl: You sure you're not just clicking the close tab button? :P
21:07:34fowlwould assume it does, because it doesnt save the session
21:07:45fowlyea because i have multiple tabs
21:07:47dom96fowl: oh wait, aporia closes?
21:07:57dom96or the tab closes?
21:08:06Araqdom96: I experienced the same bug, aporia crashes
21:08:21AraqI think it's been fixed in a recent version of it though
21:08:23fowlyea, and its only if i go all the right as the first thing i do
21:08:30fowlaporia
21:08:44dom96well there was a big related to this, but i'm pretty sure I fixed it.
21:08:48dom96*bug
21:08:56dom96Are you running latest from git?
21:09:08exhudom96, .net is worse because when I was thinking of using java or .net I saw a java runtime to be some 25 mb, while .net runtime 350 mb or so to download -)
21:10:07dom96exhu: perhaps. But .net is installed on Windows by default nowadays. The only problem I have with it is that it's portability relies on a third-party implementation, i.e. mono.
21:10:12exhudom96, anyway jit is not appropriate for the most of the apps
21:10:15fowldom96, yes
21:10:53dom96fowl: well please try to launch it from the terminal, or at least create a script which runs 'aporia > aporiaoutput.txt' and launch it instead.
21:11:19exhutoo bad android uses java and jit, although it cashes compiled code, it's still bloat...
21:11:59AraqI think jit is the future; C/C++ will get a jit too one day
21:12:00fowlgot it
21:12:13fowlhttp://pastebin.com/4pDN4mwA
21:12:35Araqbut then they'll figure out how to make the hardware adapt to input patterns like a JIT does and then it'll go away again
21:12:37exhuAraq, if jit is the future then it's the doom's day future -)
21:13:00exhuAraq, modern JVM is the best JIT can do.
21:13:58Araqnot true, you pay for virtual by default, array bound checking and covariance for arrays, as well as lack of value types
21:14:17dom96fowl: cool, thanks.
21:14:18Araqthe JVM is good at hiding the costs of those
21:14:22Mat2JIT compilation fits fine for efficient vm interpreters because interpretative performance limit the needed complexity of JIT compilation
21:14:36Mat2remarkably
21:14:39exhuJIT maybe good for some program parts, e.g. runtime plugins, but the biggest part of the program should be precompiled, imho
21:15:28Mat2the sad thing is, that efficient interpretation is not archivable with the common methods choosen from Sun and Microsoft
21:17:03exhuAraq, i've benchmarked some time ago .net with value types and jvm, and jvm was not slower, it just used times more memory.
21:17:45fowlits 2013 and i can't start up my computer with linux, windows and os x simulataneously and switch between them at any time thanks to virtualized hardware. its 2013, we're supposed to have flying cars by now for gods sake.
21:18:02Araqeventually using more memory means being slower, exhu
21:18:20fowlthink the writers of the jetsons are hella disappointed too
21:18:37dom96fowl: I want my self-tying shoes.
21:18:53exhuAraq, and jit eats more memory, that's why jit is slow -) that's the point.
21:19:33exhufowl, it's 2013 and still windows boots as long as it was some 15 yrs ago -)
21:19:52Araqno I think boot times got worse
21:26:57Araqreactormonk: what's wrong with the template?
21:49:54*exhu quit (Quit: Ex-Chat)
21:50:56reactormonkAraq, I have the slight idea it shouldn't go where it does
21:51:47reactormonkoh, and can I add a header requirement to a template?
21:52:41reactormonknope
21:53:42Araq{.emit: "#include \"abc.h\"".}
21:56:17reactormonkare cstrings dynamic as well?
21:56:39Araqno they are not
21:56:41reactormonkjust allocate an array of chars, I assume
21:58:12reactormonkhttp://nimrod-code.org/manual.html#cstring-type doesn't say how to allocate one
22:13:58Mat2ciao
22:14:07*Mat2 quit (Quit: Verlassend)
22:19:19NimBotnimrod-code/babel master f46fcaf Dominik Picheta [+2 ±2 -0]: Refactored a lot of code -- split many functions into separate module.
22:19:19NimBotnimrod-code/babel master ab6ef7d Dominik Picheta [+0 ±1 -0]: Updated readme with new instructions and conventions.
22:20:25*dom96 is sore from writing all those docs
22:20:31dom96You guys better appreciate them :)
22:20:52dom96Also, please test the new babel.
22:21:24Araqis aporia a babel module?
22:21:55dom96not yet
22:21:57dom96But it will be
22:22:19fowldoes babel have a concept of 'app' packages or jsut libs
22:22:40dom96fowl: I just implemented the former ;)
22:22:46fowlneat
22:22:46dom96Take a look at the readme
22:23:34dom96Still need to fix parsing of 0.1-RC1 :P
22:23:52dom96Also babel needs a verbosity setting
22:25:06Araqimho you should only support a.b.c.d like versioning
22:25:16dom96I bet there are some kinks with the dependency resolution, so please test it
22:25:31Araq0.1-RC1 wtf that's not a version number
22:25:37dom96Araq: maybe
22:25:49Araq0.1-banana is no version either
22:26:02dom96I've noticed that fowl is using that version number
22:26:12fowlwhere
22:26:53dom96fowltek
22:27:30fowlmy says version: HEAD
22:27:42dom96https://github.com/fowlmouth/nimlibs/blob/master/fowltek.babel#L3
22:27:44fowloh
22:27:48fowlill change it
22:28:08fowlcan i set it to unicode infinity
22:28:16dom96ruby gems treats any version number with text in it as a "prerelease"
22:28:21dom96But then I think Araq is right.
22:28:45dom96Checking whether 0.1-RC1 is newer than 0.1-Banana2 would be troublesome :P
22:28:58fowlits '1.0-RC'
22:29:00fowl>_>
22:29:17dom96That's irrelevant to our discussion really.
22:31:50fowlshould i just sync it to nimrod's version then since there probably wont ever be a real 'release' but i could tag it for the nimrod version thats used
22:32:39dom96it's up to you
22:34:03fowlthat would probably be better than just saying noversion
22:34:35dom96You don't have to release at all.
22:34:45dom96You can just use 0.1 or w/e forever
22:35:04dom96But then your lib will always be a moving target
22:35:20dom96Although I do plan to allow you to specify a commit hash as the version
22:39:08NimBotnimrod-code/babel master a049393 Dominik Picheta [+0 ±1 -0]: Adjusted echoPackage.
22:39:08NimBotnimrod-code/babel master f2a47a0 Dominik Picheta [+1 ±0 -0]: Added todo list.
22:39:23fowldo we need a site generator like jekyll for jester
22:39:50dom96A blog generator like jekyll would be cool.
22:39:58dom96But I don't see how it ties in with jester.
22:41:14fowleh ur right i was thinking just use jester and read stuff from json but thats not jekyll works >_>
22:41:23dom96yeah
22:45:55*amarsahinovic joined #nimrod
23:21:03*burntsushi quit (Read error: Connection reset by peer)
23:21:23*burntsushi joined #nimrod
23:21:38NimBotAraq/Nimrod master edf4319 Araq [+1 ±2 -0]: fixes #385
23:21:46reactormonkso, how do I allocate a cstring?
23:22:02Araqfowl already told you weeks ago
23:22:12Araqyou use an array [N, char]
23:22:23*zahary joined #nimrod
23:25:41Araqgood night
23:26:51reactormonkAraq, ok
23:31:11*zahary quit (Ping timeout: 260 seconds)
23:33:57*greyfox1 joined #nimrod
23:34:48*greyfox1 left #nimrod (#nimrod)
23:35:09*greyfox1 joined #nimrod
23:36:16dom96hi greyfox1
23:36:30greyfox1hi
23:57:21fowldom96, how will apps be installed
23:57:37dom96fowl: did you read the readme?
23:57:44fowlnope :p
23:57:47dom96I documented everything there :P
23:58:31fowlwhat about aporia it requires share/ doesnt it
23:58:54dom96hrm, shit. I didn't consider that.
23:59:07fowlimo you should use a unionfs mounted at ~/.babel/apps
23:59:22fowlfor windows just copy
23:59:39dom96what's a unionfs?