00:17:21 | reactormonk | Araq, maybe |
00:17:30 | reactormonk | gotta say I hoped for it |
00:22:45 | tangentstorm | http://i.imgur.com/Ii5X3oJ.png <- bf debugger + syntax highlighter :) |
00:22:53 | tangentstorm | actually not quite a debugger yet. |
00:23:19 | tangentstorm | how would i do ReadKey() in nimrod? terminal doesn't seem to support the keyboard stuff. |
00:31:04 | reactormonk | tangentstorm, read up on readline I'd say |
00:32:57 | tangentstorm | hrm. 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:33 | reactormonk | Araq, so no sweet C type import? |
04:19:46 | fowl | type prog_char {.importc: "that".} : cchar ? |
04:19:58 | reactormonk | fowl, I want to import the type |
04:20:01 | reactormonk | prog_char {.importc:"PROGMEM prog_char", header: "avr/pgmspace.h".} # a signed char (1 byte) -127 to 128 |
04:20:15 | reactormonk | oh, I see |
04:20:42 | * | OrionPK quit (Read error: Connection reset by peer) |
04:21:08 | reactormonk | distinct pointer or similar |
04:21:54 | reactormonk | what's the difference between word and dword? |
04:23:00 | fowl | reactormonk, i dunno what you want from me, just wrap strcpy_P and like functions and use them like in the examples |
04:23:46 | fowl | uhhhhhh dword is twice as long as a word iirc |
04:23:55 | fowl | word = 32bit, dword = 64 |
04:24:12 | fowl | check that out tho i dunno |
04:24:23 | reactormonk | double word then? |
04:25:02 | fowl | idk |
04:25:26 | fowl | A DWORD is a 32-bit unsigned integer (range: 0 through 4294967295 decimal). |
04:25:46 | fowl | word = 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:35 | reactormonk | Araq, or is it possible to have two distinct kinds of pointeres? |
06:07:38 | reactormonk | *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:26 | fowl | reactormonk, 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:28 | JesseH | The readme said to do "koch install [dir]", how do I do that? What do I replace [dir] with? |
16:22:36 | OrionPK | the path of your bin folder |
16:23:06 | OrionPK | where the nimrod exe is |
16:27:06 | JesseH | linux |
16:27:44 | reactormonk | JesseH, which one? |
16:27:52 | JesseH | Huh? |
16:27:56 | JesseH | Which one what |
16:27:59 | reactormonk | JesseH, which linux |
16:28:08 | JesseH | ubuntu 12.04 |
16:28:29 | JesseH | ill just set path |
16:28:37 | reactormonk | that's what I did |
16:30:02 | JesseH | Awesome, its working |
16:30:24 | JesseH | Where can I find some benchmarks of Nimrod vs other languages? |
16:31:49 | Araq | there are benchmarks on bitbucket, dunno if the guy kept the results up to date |
16:33:09 | JesseH | alright |
16:33:36 | Araq | most benchmarks I encounter are quite stupid though |
16:34:15 | Araq | like testing "hash table speed" of builtin hash tables |
16:37:45 | Araq | which 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:50 | reactormonk | Araq, what's the total average size of all error messages in the stdlib? |
16:49:12 | reactormonk | less 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:34 | JesseH | I guess it's a lack of knowledge...never used koch before. |
16:49:49 | reactormonk | JesseH, unzip the c sources, build.sh ./koch boot then link ./bin/ to $PATH |
16:50:18 | Araq | or run the install.sh script |
16:50:20 | JesseH | I see no c sources |
16:50:28 | JesseH | Araq, with what arguments? |
16:51:04 | reactormonk | JesseH, cd build && unzip csources.zip && cd .. && ./build.sh && ./koch boot |
16:51:25 | JesseH | no csources.zip |
16:52:03 | Araq | install /opt |
16:52:14 | Araq | install /usr/local |
16:52:17 | Araq | install /usr |
16:52:50 | reactormonk | JesseH, did koch boot work? |
16:59:58 | * | gradha joined #nimrod |
17:00:16 | Araq | gradha did it! |
17:00:21 | gradha | what? |
17:00:31 | Araq | with you there are 30 people in here |
17:00:42 | gradha | ah, another penis length contest |
17:00:45 | JesseH | reactormonk, yeah |
17:00:56 | gradha | want me to log out? |
17:01:17 | gradha | then logging back in will be like another party |
17:01:28 | OrionPK | is that counting nimbot? |
17:01:29 | OrionPK | ;) |
17:01:46 | gradha | you are going to hurt dom96's feelings |
17:01:59 | reactormonk | JesseH, then try if bin/nimrod works and just add that to your PATH |
17:03:51 | gradha | indeed, I just add ~/project/nimrod/root/bin to my $PATH, no install needed |
17:04:27 | gradha | btw, NimBot is being a bad boy, http://build.nimrod-code.org/irclogs/01-06-2013.html returns a 404 |
17:05:21 | dom96 | NimBot is a good boy. It's nginx that is being bad. |
17:06:30 | dom96 | gradha: fixed. |
17:07:00 | gradha | hmm, so I did actually use irc yesterday |
17:07:24 | dom96 | Now Nimbuild is being bad: http://build.nimrod-code.org/irclogs/30-05-2013.html |
17:07:34 | dom96 | jester to the rescue though! |
17:08:08 | gradha | backwards compatibility is always problematic |
17:10:58 | JesseH | nimrod is in my usr/bin |
17:11:06 | JesseH | still doesnt wor |
17:11:08 | JesseH | work* |
17:11:23 | gradha | does it refuse to run? |
17:11:53 | JesseH | It will run in certain folders |
17:12:14 | JesseH | but 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:18 | reactormonk | Araq, oh, I just got an internal assert :-) |
17:12:20 | dom96 | There we go, all fixed. |
17:12:56 | dom96 | JesseH: Why don't you just add it to your $PATH? |
17:13:25 | JesseH | I did |
17:13:30 | reactormonk | dom96, could you compile http://sprunge.us/WQTI ? |
17:13:32 | gradha | JesseH: I believe bash does some weird path caching, can you open a new session and run nimrod there? |
17:13:37 | reactormonk | JesseH, which nimrod |
17:13:45 | JesseH | onesec |
17:14:05 | gradha | sometimes 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:45 | dom96 | reactormonk: 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:09 | reactormonk | dom96, nah, it doesn't compile on the nimrod side. |
17:15:17 | JesseH | works now |
17:16:42 | gradha | JesseH: cool, so what amazing stuff are you planning to use nimrod for? |
17:17:00 | JesseH | mmofpgrpsOS |
17:17:05 | dom96 | reactormonk: indeed. Nimrod compiler crashes. |
17:17:15 | JesseH | gradha, I joke :P |
17:17:32 | reactormonk | dom96, I assume it doesn't like my template there |
17:17:35 | gradha | I don't know even what that is, maybe you have a cat running on your keyboard? |
17:18:04 | JesseH | gradha, It was a joke, about creating a MMO-FPS-RPG-operating system ;P |
17:19:05 | gradha | that would be really problematic, like, you have to fsck to get experience to level up and run cp? |
17:19:39 | JesseH | ;P |
17:19:47 | gradha | hmm... but FPS doesn't go well with commandline |
17:22:45 | reactormonk | Araq, any comments? |
17:23:07 | gradha | JesseH: 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:18 | Araq | crashing compiler screams "bug report", reactormonk |
17:23:50 | dom96 | gradha: Don't be silly, that will never happen. |
17:24:02 | JesseH | I 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:06 | Araq | now that's easy, JesseH; Nimrod still needs parser generators, so there. Write one. |
17:25:08 | reactormonk | Araq, is the emit template legit? |
17:25:32 | Araq | I don't think so |
17:25:35 | JesseH | Araq, Maybe |
17:25:50 | Araq | 'emit' produces a void context |
17:25:58 | gradha | JesseH: I fancy http://www.complang.org/ragel/ to output nimrod code |
17:26:36 | gradha | you could go either bind the generated C to nimrod or generate directly nimrod code from ragel |
17:26:59 | reactormonk | Araq, well, it's a C macro that needs a string literal. |
17:28:07 | gradha | dom96: does the live online forum feature the recent merges? |
17:28:22 | dom96 | gradha: not yet, no. |
17:28:52 | dom96 | i'll update it now :) |
17:29:04 | JesseH | Is there sdl bindings yet? |
17:29:22 | reactormonk | Araq, any way I can get the nimrod compiler to emit PSTR("foobar") and not some STRING_LITERAL ? |
17:29:22 | dom96 | JesseH: yep, sfml too. |
17:29:29 | JesseH | Awesome |
17:29:38 | JesseH | opengl, I would assume |
17:29:40 | JesseH | too |
17:29:43 | dom96 | indeed |
17:30:26 | JesseH | Any good examples of embedding lua in nimrod? |
17:31:15 | reactormonk | Araq, when changing the template to a proc, it gives me 'constant expression expected' |
17:34:22 | Araq | JesseH: examples/luaex.nim contains a basic example |
17:47:10 | fowl | JesseH, i wrote a whack lua editor a long time ago https://gist.github.com/fowlmouth/f6c2b949674322ab3db5 |
17:47:40 | JesseH | interesting |
17:49:33 | fowl | that code is old though and wont compile on 0.9.2 |
17:51:34 | fowl | also, 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:18 | Araq | reactormonk: template mystr(a, b: expr) {.immediate, dirty.} = |
17:58:20 | Araq | {.emit: "progchar " & astToStr(a) & "[] PROGMEM = " & astToStr(b) & ";".} |
17:58:22 | Araq | mystr(name, "value") |
17:58:37 | Araq | doesn't work for now, I'm about to push a patch so that it does |
18:00:42 | reactormonk | Araq, so no value context? |
18:04:09 | Araq | no value context |
18:05:19 | Araq | I 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:39 | reactormonk | ok |
18:08:24 | gradha | amazing, html frameset doesn't allow embedding the source code, you are forced to use separate files |
18:09:01 | dom96 | new forum is up |
18:10:40 | fowl | you should put the login form in a floating (hidden) fieldset and show it when you click on login |
18:11:04 | fowl | instead of having a separate, mostly empty page for it |
18:11:40 | Araq | dom96: excellent work, dev docs points to the proper site finally |
18:11:48 | dom96 | Araq: thank gradha not me :P |
18:12:09 | gradha | dom96: why are you compressing the last reply column with the dates, to force three rows? |
18:12:16 | Araq | gradha: excellent work, does that mean every new message is subject to the new license? |
18:12:21 | dom96 | fowl: I'd say showing an rst cheatsheet inline is more important. However, pull requests are always welcome. |
18:12:31 | gradha | Araq: not yet, you still own what you post |
18:12:45 | Araq | alright |
18:13:04 | fowl | http://build.nimrod-code.org/docs/overview.html has no css |
18:13:24 | dom96 | gradha: huh? i'm not sure what you mean. |
18:13:49 | gradha | Araq: after the license change all posts will be copyright The Nimrod Forum Coalition, with express rights granted to some gradha user |
18:14:27 | gradha | dom96: 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:51 | fowl | dom96, the last reply column is size limited, so UTC is on a new line, causing the rows to be 3 lines long |
18:16:17 | dom96 | hrm, am I the only one who keeps his browser window maximised or is your screen resolution just really small? |
18:16:38 | dom96 | it fits on two lines for me. |
18:17:04 | Araq | fowl: no css for the overview is a feature |
18:17:16 | Araq | the documentation is not the same as the website |
18:17:18 | dom96 | I was planning on changing it so that it's something like "5 hours ago by someone" |
18:17:26 | fowl | yes i have a small screen |
18:18:02 | dom96 | But that in fact requires some additions to the times module. |
18:18:27 | fowl | when i maximize its on two lines |
18:18:44 | dom96 | maybe a babel lib would suffice |
18:18:46 | dom96 | bbl |
18:21:34 | gradha | dom96: 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:11 | gradha | if 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:32 | Mat2 | hello |
18:26:47 | gradha | welcome Mat2 |
18:30:28 | Araq | hi Mat2, wb |
18:31:50 | Mat2 | at current I'am beginning to port parable (http://www.forthworks.com/) to C via nimrod |
18:33:22 | gradha | if you make it work with nimrod's javascript backend you will have to javascript ports then |
18:38:03 | Mat2 | a javascript implementation exist already, I'm more interested adding AOT compilation |
18:38:50 | dom96 | gradha: 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:14 | fowl | whats AOT |
18:42:30 | Araq | "ahead of time" |
18:42:42 | Araq | as opposed to "just in time" (JIT) |
18:44:16 | gradha | it's like... whatever it has always been, plain normal compilation |
18:44:22 | fowl | o |
18:47:02 | Mat2 | yes, 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:19 | NimBot | Araq/Nimrod master c25657e Araq [+0 ±1 -0]: next steps to a luajit codegen |
19:53:19 | NimBot | Araq/Nimrod master 14a9fee Araq [+0 ±4 -0]: astToStr is now immediate |
19:53:19 | NimBot | Araq/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:04 | reactormonk | Araq, you say now it works? |
20:04:58 | * | fowl joined #nimrod |
20:05:04 | Araq | the template I gave now works |
20:07:52 | JesseH | Does nimrod have curses bindings? |
20:08:03 | reactormonk | JesseH, iirc yep |
20:08:07 | reactormonk | if not, there's c2nim |
20:08:22 | fowl | no |
20:09:04 | fowl | theres a pdcurses for windows and i started on ncurses but havent worked much on it |
20:09:11 | reactormonk | Araq, the problem with immeditate emit template is that it gets emitted the momemnt it is evaluated |
20:09:19 | reactormonk | #include "nimbase.h" |
20:09:22 | reactormonk | progchar foo[] PROGMEM = "bar";static N_INLINE(void, initStackBottom)(void); |
20:09:24 | reactormonk | N_NOINLINE(void, setStackBottom)(void* thestackbottom); |
20:12:38 | dom96 | Anyone need something to do? |
20:12:59 | reactormonk | dom96, outsourcing? |
20:13:28 | Araq | dom96: please implement 'diff' for nimbuild |
20:13:43 | dom96 | reactormonk: huh? no? |
20:14:25 | dom96 | Was going to suggest for someone to clean up the logging module and finally put it in the stdlib |
20:15:16 | dom96 | Araq: i'm cleaning up babel currently |
20:16:35 | * | exhu joined #nimrod |
20:16:41 | exhu | hey, Araq! |
20:17:09 | Araq | hi exhu |
20:17:54 | JesseH | how do I get vim syntax highlighting for nimrod |
20:18:06 | JesseH | How do I get nimrod syntax highlighting for vim* |
20:18:12 | JesseH | I mix up sentences :/ |
20:18:24 | exhu | var 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:05 | Araq | JesseH: https://github.com/zah/nimrod.vim |
20:19:30 | Araq | exhu: capture 'ptr' instead |
20:19:39 | gradha | JesseH: you don't get just syntax with that, you get the ability to jump around code too |
20:19:50 | JesseH | Awesome |
20:20:40 | fowl | https://gist.github.com/fowlmouth/88da0f8be5e92a149dcb ncurses wrapper |
20:20:40 | gradha | look at the :call JumpToDef() macro, it invokes nimrod's idetools command, which returns the file/line/col of whatever you are at |
20:20:48 | fowl | im going to work on it a bit today |
20:22:06 | exhu | Araq, it works, thanks |
20:22:18 | gradha | JesseH: btw, did you look at Aporia? It's the official IDE for nimrod |
20:22:34 | JesseH | I use vim and gedit for editing stuff |
20:22:41 | JesseH | What's the IDE got? |
20:22:48 | gradha | no idea, doesn't compile for me |
20:22:52 | Araq | aporia is a much better gedit than gedit is |
20:23:14 | exhu | Araq, are multimethods optimized now, or I better use objects of procvars? |
20:23:31 | Araq | not optimized but people prefer them |
20:23:46 | Araq | and it shouldn't matter for a UI |
20:24:26 | Araq | on the other hand getting dead code elimination for them to work looks like a though problem |
20:24:58 | Araq | so I suppose you should go with a streams-like approach |
20:26:35 | * | JesseH wonders if nimrod will oneday replace c |
20:26:58 | gradha | it compiles to c, so... no? |
20:27:00 | exhu | Araq, i've recently liked closures much so that feel like using procvars more. |
20:27:06 | JesseH | Oh right, didnt know that |
20:27:07 | JesseH | oh well |
20:27:36 | gradha | note that it's perfect, you get C portability but without ugly C |
20:27:46 | apotheon | gradha: . . . except when compiling. |
20:27:48 | gradha | so indeed you could say it replaces C |
20:27:55 | apotheon | Nimrod doesn't have to compile to C forever, though. |
20:27:57 | exhu | JesseH, C today is like assembler some 20 yrs ago -) |
20:28:03 | apotheon | It could eventually go the direct route. |
20:28:30 | gradha | it will once it takes over the world |
20:29:00 | * | JesseH installs aporia |
20:29:02 | gradha | rather 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:06 | exhu | BTW i use clang on linux and mac, it compiles 1/3 faster than gcc |
20:29:41 | fowl | its still clang |
20:29:48 | fowl | thats the hipsters' c compiler |
20:29:52 | JesseH | viva revoltion? |
20:29:55 | JesseH | \o/ |
20:29:55 | exhu | clang as nimrod's backend I mean |
20:30:01 | apotheon | exhu: I'm a fan of Clang. |
20:30:23 | apotheon | Even 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:47 | exhu | apotheon, but i generates slower code than gcc -) i'm not a fanatic of both, just developing times are smaller with clang |
20:31:29 | apotheon | That's not the only reason. |
20:31:33 | gradha | apotheon: 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:01 | apotheon | Measuring development times solely by compile times comes with an implicit assumption of perfect coders to isolate the compile time variable. |
20:32:44 | apotheon | gradha: 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:58 | apotheon | gradha: It's also better at adhering to C standards. |
20:33:13 | apotheon | GNU has some NIH issues. |
20:34:24 | JesseH | How do I install once i've built aporia? Just set path? |
20:34:58 | gradha | I'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:08 | exhu | apotheon, 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:26 | Mat2 | apotheon: gcc generate better optimizated code (my experience), however the source-code is somewhat messed |
20:35:33 | apotheon | exhu: I agree compilation time matters. I'm just saying that the other benefits are great, too. |
20:36:20 | apotheon | exhu: 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:32 | JesseH | gradha, it does work |
20:36:38 | JesseH | Is it too soon to get a nimrod tattoo |
20:36:38 | apotheon | (regarding "big C++ project" . . . is there any other kind?) |
20:36:56 | exhu | apotheon, i've never seen cryptic messages for C sources, only C++ ones. |
20:36:58 | apotheon | Mat2: Yeah, agreed. |
20:37:08 | apotheon | JesseH: It's too soon. |
20:37:22 | JesseH | : |
20:37:23 | JesseH | :( |
20:37:29 | apotheon | exhu: 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:14 | exhu | apotheon, i use msvc and clang at work, so i can't :) |
20:38:35 | apotheon | That'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:44 | apotheon | exhu: That changes things. |
20:38:53 | JesseH | What are the downsides to a nimrod tattoo xD |
20:39:01 | exhu | apotheon, i can tell the msvc compiler sucks both in compilation time, error messages and crashes sometimes vs clang. |
20:39:10 | gradha | JesseH: 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:15 | fowl | nimrod tattoo lol |
20:39:30 | gradha | JesseH: dom96 is the mastermind behind Aporia, you can nag him about more detailed stuff |
20:39:39 | JesseH | dom96, gimme yo knowledge |
20:39:47 | gradha | JesseH: like how to get suggestions working, so it completes as you type |
20:39:56 | exhu | apotheon, and clang's code completion and analysis features are fantastic (xcode uses it). |
20:40:02 | Araq | gcc used to produce a faster nimrod than clang, the gap closed recently |
20:40:15 | JesseH | I think I tried cp-ing the binary somewhere, and it didnt want to run |
20:40:20 | * | dom96 hides |
20:40:43 | fowl | JesseH, symlink it |
20:40:50 | apotheon | exhu: That's another one of those nice characteristics of Clang. |
20:40:52 | gradha | JesseH: did it say something about why it didn't want to run? |
20:40:52 | fowl | ln -s /path/to/nimrod/bin/nimrod ~/bin |
20:41:05 | dom96 | JesseH: You need the share/ folder too. |
20:41:06 | fowl | er dont use ~/bin use /home/me/bin or wherever your local bin is |
20:41:36 | dom96 | symlinking or simply adding the directory where you cloned the repo is a good idea since you can then easily update it |
20:41:53 | dom96 | *adding the directory to your $PATH |
20:42:40 | exhu | apotheon, i've recently seen a c++ 11 features presentation, i hate c++ even more now, great there's nimrod -) |
20:42:53 | fowl | i also keep the tagged versions symlinked as nimrod0.9.0 |
20:42:55 | dom96 | Also when it comes to suggest, it's still not good enough to be enabled IMO. |
20:43:01 | apotheon | I 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:41 | apotheon | exhu: 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:40 | Araq | exhu: hu? what's not to like about C++11? |
20:44:52 | Araq | (except that it's still C++ of course) |
20:44:54 | Mat2 | exhu: C++ is the brainfuck version of PL/1 |
20:45:38 | Araq | PL/1 is the poor version of Algol |
20:45:55 | Mat2 | *lol* |
20:45:59 | exhu | Araq, c++ added just more features to already bloated lang |
20:46:13 | exhu | Araq, c++ iterators are still shitty |
20:46:41 | apotheon | "Look, we added new stuff!" |
20:46:47 | apotheon | "Why does it suck as much as the old stuff?" |
20:46:59 | apotheon | "You can still use the old stuff if you prefer!" |
20:47:19 | fowl | lol |
20:47:19 | apotheon | "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:06 | Araq | I like C++ on a theoretical basis :P |
20:48:17 | Mat2 | I'm not |
20:49:05 | exhu | apotheon, 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:02 | Araq | yeah but that's way better than Java where the only way to do things sucks |
20:50:07 | apotheon | har |
20:50:56 | exhu | Araq, java is plain simple and that's why it's easy to read, refactor and catch on alien code. |
20:51:09 | apotheon | It'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:54 | apotheon | Python 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:59 | JesseH | Pressed F5 and now this bar keeps moving saying executing >_> |
20:52:14 | apotheon | Every language community has its stupidities. You just have to find those that annoy you least. |
20:52:24 | exhu | Araq, the only way to do things makes programs compile faster, java's jit is impressive because it gets the patterns. |
20:52:44 | fowl | JesseH, may be hanging on input? |
20:52:55 | JesseH | :/ it didnt echo nothing out yet though |
20:53:01 | JesseH | http://nimrod-code.org/tut1.html |
20:53:13 | gradha | JesseH: or maybe it doesn't find the compiler in the path? |
20:53:28 | apotheon | exhu: 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:29 | JesseH | Hmmmm |
20:53:34 | fowl | dont run that in aporia, you cant access stdin |
20:53:42 | JesseH | Oh okay |
20:53:51 | apotheon | Short-running processes are the wrong things to build in Java. |
20:53:52 | * | JesseH sticks to terminal for running |
20:54:06 | Araq | exhu: I disagree, the worst code bases I've seen were in Java ... or perhaps smalltalk |
20:54:21 | Araq | that java is "simple" doesn't help the resulting messes |
20:54:34 | exhu | apotheon, 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:38 | exhu | Araq, 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:38 | apotheon | exhu: 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:55 | apotheon | Hah. Comparing C++ and Java. |
20:56:10 | apotheon | Nimrod > both. |
20:56:21 | apotheon | (from what I've seen so far) |
20:56:26 | apotheon | (I'm not exactly an expert, yet.) |
20:56:52 | Araq | exhu: was that before luajit got allocation sinking? |
20:57:29 | gradha | exhu: on my machine anything java related runs as if I didn't have an SSD |
20:58:02 | exhu | apotheon, 1) nimrod, 2) java, 3) freepascal, 4) C, 5) c++ --- in the order of my preference :) |
20:58:11 | apotheon | exhu: Are you running Java on eight-core machines with 8GB RAM? |
20:58:35 | apotheon | I'm on a two-core laptop with 4GB RAM. |
20:58:35 | _ponce | C++ feels suprisingly complete and thought out albeit superficially ugly. |
20:59:05 | _ponce | well except with newer stuff like lambdas which cannot be templated |
20:59:09 | gradha | exhu: did you compare your benchmarks to other available software like maybe ImageMagick? just for reference |
20:59:20 | apotheon | I 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:42 | dom96 | I'm on a computer with 2GB of RAM. Running anything JVM related makes everything incredibly slow. |
20:59:43 | gradha | exhu: or maybe python's pil, which people say it's good |
21:00:00 | exhu | apotheon, 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:03 | apotheon | dom96: My point exactly. |
21:00:14 | apotheon | exhu: You must have a Magical JVM, then. |
21:00:18 | Mat2 | hmm, I am think of C as some kind of macro assembler with ugly syntax |
21:00:29 | apotheon | . . . or I'm doing something wrong, perhaps. |
21:00:43 | apotheon | If so, though, I'm not the only one doing something wrong, because these are common complaints. |
21:00:47 | fowl | im more opposed to java code, as i have yet to see any that doesn't disgust me |
21:01:00 | apotheon | fowl: Yeah, I'm not a huge fan of Java code, either. |
21:01:12 | apotheon | If I was convinced to use the JVM, I'd probably use Scala instead of Java. |
21:01:22 | Araq | assemblers have reasonable semantics which are not full of holes, Mat2 |
21:02:02 | exhu | apotheon, 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:09 | Araq | exhu: I heard you can inspect the asm the JIT generates, would be very interesting to compare the generated asms |
21:03:28 | reactormonk | Araq, is the template problem fixable? issue? |
21:03:29 | Mat2 | Araq: Agree, C is somehat more portable though |
21:03:37 | exhu | Araq, i looked for generated asm in the internet, did not find a way to get it. |
21:04:20 | dom96 | If 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:22 | fowl | _ponce, https://github.com/fowlmouth/cpptranny#type-declaration-syntax |
21:05:54 | apotheon | dom96: The mythic portability of Java depends on the JVM, of course -- and the JVM itself has some portability problems. |
21:06:10 | exhu | dom96, 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:11 | apotheon | Stupidly, some of the portability issues are based on licensing rather than technical limitations. |
21:06:34 | apotheon | exhu: 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:45 | dom96 | exhu: why is .net worse? |
21:06:51 | * | gradha quit (Quit: bbl, have youtube videos to watch) |
21:06:53 | fowl | dom96, sometimes when i click the right arrow in aporia to get to the last tab it closes |
21:07:23 | fowl | i dunno if it crashes though because i never launch from the terminal so i dont see output >_> |
21:07:29 | exhu | apotheon, the sad story there's been no good native platform until nimrod appeared, it's either jvm or c++ hell. |
21:07:30 | dom96 | fowl: You sure you're not just clicking the close tab button? :P |
21:07:34 | fowl | would assume it does, because it doesnt save the session |
21:07:45 | fowl | yea because i have multiple tabs |
21:07:47 | dom96 | fowl: oh wait, aporia closes? |
21:07:57 | dom96 | or the tab closes? |
21:08:06 | Araq | dom96: I experienced the same bug, aporia crashes |
21:08:21 | Araq | I think it's been fixed in a recent version of it though |
21:08:23 | fowl | yea, and its only if i go all the right as the first thing i do |
21:08:30 | fowl | aporia |
21:08:44 | dom96 | well there was a big related to this, but i'm pretty sure I fixed it. |
21:08:48 | dom96 | *bug |
21:08:56 | dom96 | Are you running latest from git? |
21:09:08 | exhu | dom96, .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:07 | dom96 | exhu: 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:12 | exhu | dom96, anyway jit is not appropriate for the most of the apps |
21:10:15 | fowl | dom96, yes |
21:10:53 | dom96 | fowl: 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:19 | exhu | too bad android uses java and jit, although it cashes compiled code, it's still bloat... |
21:11:59 | Araq | I think jit is the future; C/C++ will get a jit too one day |
21:12:00 | fowl | got it |
21:12:13 | fowl | http://pastebin.com/4pDN4mwA |
21:12:35 | Araq | but 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:37 | exhu | Araq, if jit is the future then it's the doom's day future -) |
21:13:00 | exhu | Araq, modern JVM is the best JIT can do. |
21:13:58 | Araq | not true, you pay for virtual by default, array bound checking and covariance for arrays, as well as lack of value types |
21:14:17 | dom96 | fowl: cool, thanks. |
21:14:18 | Araq | the JVM is good at hiding the costs of those |
21:14:22 | Mat2 | JIT compilation fits fine for efficient vm interpreters because interpretative performance limit the needed complexity of JIT compilation |
21:14:36 | Mat2 | remarkably |
21:14:39 | exhu | JIT maybe good for some program parts, e.g. runtime plugins, but the biggest part of the program should be precompiled, imho |
21:15:28 | Mat2 | the sad thing is, that efficient interpretation is not archivable with the common methods choosen from Sun and Microsoft |
21:17:03 | exhu | Araq, 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:45 | fowl | its 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:02 | Araq | eventually using more memory means being slower, exhu |
21:18:20 | fowl | think the writers of the jetsons are hella disappointed too |
21:18:37 | dom96 | fowl: I want my self-tying shoes. |
21:18:53 | exhu | Araq, and jit eats more memory, that's why jit is slow -) that's the point. |
21:19:33 | exhu | fowl, it's 2013 and still windows boots as long as it was some 15 yrs ago -) |
21:19:52 | Araq | no I think boot times got worse |
21:26:57 | Araq | reactormonk: what's wrong with the template? |
21:49:54 | * | exhu quit (Quit: Ex-Chat) |
21:50:56 | reactormonk | Araq, I have the slight idea it shouldn't go where it does |
21:51:47 | reactormonk | oh, and can I add a header requirement to a template? |
21:52:41 | reactormonk | nope |
21:53:42 | Araq | {.emit: "#include \"abc.h\"".} |
21:56:17 | reactormonk | are cstrings dynamic as well? |
21:56:39 | Araq | no they are not |
21:56:41 | reactormonk | just allocate an array of chars, I assume |
21:58:12 | reactormonk | http://nimrod-code.org/manual.html#cstring-type doesn't say how to allocate one |
22:13:58 | Mat2 | ciao |
22:14:07 | * | Mat2 quit (Quit: Verlassend) |
22:19:19 | NimBot | nimrod-code/babel master f46fcaf Dominik Picheta [+2 ±2 -0]: Refactored a lot of code -- split many functions into separate module. |
22:19:19 | NimBot | nimrod-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:31 | dom96 | You guys better appreciate them :) |
22:20:52 | dom96 | Also, please test the new babel. |
22:21:24 | Araq | is aporia a babel module? |
22:21:55 | dom96 | not yet |
22:21:57 | dom96 | But it will be |
22:22:19 | fowl | does babel have a concept of 'app' packages or jsut libs |
22:22:40 | dom96 | fowl: I just implemented the former ;) |
22:22:46 | fowl | neat |
22:22:46 | dom96 | Take a look at the readme |
22:23:34 | dom96 | Still need to fix parsing of 0.1-RC1 :P |
22:23:52 | dom96 | Also babel needs a verbosity setting |
22:25:06 | Araq | imho you should only support a.b.c.d like versioning |
22:25:16 | dom96 | I bet there are some kinks with the dependency resolution, so please test it |
22:25:31 | Araq | 0.1-RC1 wtf that's not a version number |
22:25:37 | dom96 | Araq: maybe |
22:25:49 | Araq | 0.1-banana is no version either |
22:26:02 | dom96 | I've noticed that fowl is using that version number |
22:26:12 | fowl | where |
22:26:53 | dom96 | fowltek |
22:27:30 | fowl | my says version: HEAD |
22:27:42 | dom96 | https://github.com/fowlmouth/nimlibs/blob/master/fowltek.babel#L3 |
22:27:44 | fowl | oh |
22:27:48 | fowl | ill change it |
22:28:08 | fowl | can i set it to unicode infinity |
22:28:16 | dom96 | ruby gems treats any version number with text in it as a "prerelease" |
22:28:21 | dom96 | But then I think Araq is right. |
22:28:45 | dom96 | Checking whether 0.1-RC1 is newer than 0.1-Banana2 would be troublesome :P |
22:28:58 | fowl | its '1.0-RC' |
22:29:00 | fowl | >_> |
22:29:17 | dom96 | That's irrelevant to our discussion really. |
22:31:50 | fowl | should 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:39 | dom96 | it's up to you |
22:34:03 | fowl | that would probably be better than just saying noversion |
22:34:35 | dom96 | You don't have to release at all. |
22:34:45 | dom96 | You can just use 0.1 or w/e forever |
22:35:04 | dom96 | But then your lib will always be a moving target |
22:35:20 | dom96 | Although I do plan to allow you to specify a commit hash as the version |
22:39:08 | NimBot | nimrod-code/babel master a049393 Dominik Picheta [+0 ±1 -0]: Adjusted echoPackage. |
22:39:08 | NimBot | nimrod-code/babel master f2a47a0 Dominik Picheta [+1 ±0 -0]: Added todo list. |
22:39:23 | fowl | do we need a site generator like jekyll for jester |
22:39:50 | dom96 | A blog generator like jekyll would be cool. |
22:39:58 | dom96 | But I don't see how it ties in with jester. |
22:41:14 | fowl | eh ur right i was thinking just use jester and read stuff from json but thats not jekyll works >_> |
22:41:23 | dom96 | yeah |
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:38 | NimBot | Araq/Nimrod master edf4319 Araq [+1 ±2 -0]: fixes #385 |
23:21:46 | reactormonk | so, how do I allocate a cstring? |
23:22:02 | Araq | fowl already told you weeks ago |
23:22:12 | Araq | you use an array [N, char] |
23:22:23 | * | zahary joined #nimrod |
23:25:41 | Araq | good night |
23:26:51 | reactormonk | Araq, 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:16 | dom96 | hi greyfox1 |
23:36:30 | greyfox1 | hi |
23:57:21 | fowl | dom96, how will apps be installed |
23:57:37 | dom96 | fowl: did you read the readme? |
23:57:44 | fowl | nope :p |
23:57:47 | dom96 | I documented everything there :P |
23:58:31 | fowl | what about aporia it requires share/ doesnt it |
23:58:54 | dom96 | hrm, shit. I didn't consider that. |
23:59:07 | fowl | imo you should use a unionfs mounted at ~/.babel/apps |
23:59:22 | fowl | for windows just copy |
23:59:39 | dom96 | what's a unionfs? |