00:27:15 | ddl_smurf | is that stack bottom thing fixed yet ? |
00:29:12 | OrionPKM | stack bottom girls make the world go 'round |
00:29:17 | * | io2 quit () |
00:37:14 | Varriount | Araq, did that stack trace gathered from the segfaulting builder do anything to help? |
00:41:38 | * | psquid joined #nimrod |
00:48:24 | * | jenjimm quit (Ping timeout: 252 seconds) |
00:59:21 | * | jimmt joined #nimrod |
01:09:58 | fowl | hola |
01:10:01 | * | brson quit (Ping timeout: 250 seconds) |
01:13:29 | Varriount | fowl, hi |
01:14:42 | * | brson joined #nimrod |
01:18:57 | Demos | hey fowl, I looked at your entity code on github and it helped me. I thought you should know that your work helped someone make his code better |
01:21:04 | fowl | really? |
01:21:22 | OrionPKM | lol |
01:21:30 | OrionPKM | fowl is surprised? |
01:22:09 | fowl | yes lol |
01:29:59 | Demos | yeah, you were storing stuff all in one big hunk of memory |
01:30:20 | Demos | was looking to see how you dealt with construction, destruction and copying of things with pointers in em |
01:30:51 | Demos | although I kinda suspect that following a function pointer while doing a copy could really murder perf |
01:32:35 | Demos | anyway I was storing size and a type value inside the component, saw you doing it in another structure and found that was a better idea |
01:35:01 | Varriount | Demoes, fowl, entities as in entity processing systems? |
01:35:32 | Demos | entity component systems, no idea what an entity processing system is |
01:35:47 | Varriount | Ah, yes, that 's what I meant |
01:36:33 | Varriount | Demos, fowl, like this -> http://gamadu.com/artemis/ |
01:37:42 | Varriount | Although, come to think of it, nimrod's separation of types and the procedures that can act upon them seems like it would lend itself well the such paradigms |
01:38:33 | Demos | I am actually wrting this in c++, and I can not really use types much in the internals since my world would be a std::vector<std::vector<component>> and you can not have value types in something like that |
01:38:51 | Varriount | *shrug* |
01:38:58 | Demos | I need to use singletons (types not OOP globals) to make a container that holds whatever type you put in first |
01:40:25 | fowl | Demos, for constructors i allow each component to have an initializer, then the typeinfo's initializer is just a collection of component initializers that it runs on the entity, i never got around to destructors but they would work the same way |
01:41:06 | fowl | Demos, entitty is based off zahary 's design for a component system, he originally used c++ for it |
01:42:51 | Demos | yea, I store components seperately from entities themselves so I only need the one constructor, but yeah I do the same. I have a default one that calls ::new(pos) T() and pos->~T() and so on |
02:38:59 | * | MFlamer joined #nimrod |
03:23:01 | * | Demos quit (Quit: Konversation terminated!) |
03:33:34 | * | Mordecai joined #nimrod |
03:34:59 | * | psquid quit (Ping timeout: 246 seconds) |
03:43:20 | * | brson quit (Ping timeout: 252 seconds) |
03:50:04 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
04:33:36 | shodan45 | still trying to understand OOP stuff in nimrod... TObject is a built-in root-of-all-objects (-classes?)? |
04:34:58 | * | BitPuffin quit (Read error: Operation timed out) |
04:36:24 | shodan45 | hm, that doesn't look right :/ |
04:37:42 | fowl | no TObject is just a base object you can inherit from |
04:37:57 | fowl | you can make your own base object using object{.inheritable.} |
04:39:19 | shodan45 | fowl: ok, so what does TObject give you, then? |
04:39:59 | fowl | a base type to inherit from? |
04:42:35 | shodan45 | right, but it isn't required - you can just have "type TFoo = object" (right?) |
04:43:32 | fowl | yes but thats not inheritable unless you add {.inheritable.} |
04:46:17 | shodan45 | ok, so then what's the difference between "TFoo = object of TObject" and "TFoo {.inheritable.} = object"? |
04:47:10 | * | brson joined #nimrod |
04:47:15 | fowl | the difference is that in the second one TFoo doesnt inherit from TObject |
04:48:48 | shodan45 | :) |
04:49:15 | shodan45 | fowl: .... ok, but why would you want to do that? |
04:51:58 | shodan45 | I'm trying to find where TObject is defined in the nimrod source, but not finding anything |
04:53:19 | fowl | system.nim probably |
04:53:58 | fowl | as for why use TObject or dont use it, its preferecne |
04:59:12 | shodan45 | heh, github search for system.nim didn't find it... I guess it doesn't index file names? o_O |
04:59:59 | fowl | shodan45, its in nimrod's lib/ |
05:01:56 | shodan45 | fowl: yeah, I know, I was trying to use search as a faster way to get there |
05:03:07 | shodan45 | and it looks like aside from {.inheritable.}, it also {.exportc: "TNimObject".} |
05:03:19 | shodan45 | eh, I'll stop digging there :) |
05:04:10 | * | BitPuffin joined #nimrod |
05:09:15 | * | BitPuffin quit (Ping timeout: 272 seconds) |
05:10:31 | shodan45 | fowl: thanks for the help |
05:10:38 | fowl | np |
05:10:40 | fowl | good night |
05:15:54 | * | xenagi joined #nimrod |
05:29:20 | * | MFlamer quit (Ping timeout: 240 seconds) |
06:04:30 | * | BitPuffin joined #nimrod |
06:09:14 | * | BitPuffin quit (Ping timeout: 264 seconds) |
06:10:09 | * | brson quit (Read error: Operation timed out) |
06:12:48 | * | brson joined #nimrod |
06:17:23 | * | xenagi quit (Quit: Leaving) |
06:19:02 | * | brson quit (Ping timeout: 240 seconds) |
06:20:06 | * | brson joined #nimrod |
06:56:17 | * | psquid joined #nimrod |
06:57:42 | * | Mordecai quit (Ping timeout: 240 seconds) |
07:05:13 | * | BitPuffin joined #nimrod |
07:09:51 | * | BitPuffin quit (Ping timeout: 240 seconds) |
07:22:03 | * | brson quit (Ping timeout: 240 seconds) |
07:51:10 | * | zahary quit (Read error: Connection reset by peer) |
07:51:41 | * | zahary joined #nimrod |
08:05:57 | * | BitPuffin joined #nimrod |
08:10:47 | * | BitPuffin quit (Ping timeout: 250 seconds) |
08:35:49 | * | zielmicha joined #nimrod |
09:06:44 | * | BitPuffin joined #nimrod |
09:11:19 | * | BitPuffin quit (Ping timeout: 246 seconds) |
10:30:25 | * | shodan45 quit (Quit: Konversation terminated!) |
10:35:17 | Araq | ddl_smurf: I pushed my 'fix' for the stack bottom setting, but now it fails on my linux machine ... -.- |
10:37:11 | ddl_smurf | are there platforms where the stack grows upwards ? |
10:37:22 | Araq | yeah but they are not common |
10:38:02 | * | io2 joined #nimrod |
10:40:08 | ddl_smurf | i haven't been able to reproduce the corruption thing with anything else than nimbuild |
10:40:37 | ddl_smurf | (though admittedly, having to go into the C to "fix" the initStackBottom call is so tedious i didn't insist too much) |
10:41:00 | Araq | well use master and it shouldn't be necessary anymore |
10:41:20 | ddl_smurf | https://github.com/Araq/Nimrod/commits/master ? |
11:16:40 | * | Mordecai joined #nimrod |
11:18:46 | * | psquid quit (Ping timeout: 272 seconds) |
11:33:03 | * | brihat quit (Quit: Leaving.) |
11:34:00 | dom96 | hi |
11:35:37 | * | gradha joined #nimrod |
11:35:40 | NimBot | dom96/jester master 8d445b8 onionhammer [+0 ±1 -0]: Export strtabs from jester.nim |
11:35:40 | NimBot | dom96/jester master d405529 Dominik Picheta [+0 ±1 -0]: Merge pull request #7 from onionhammer/patch-1... 2 more lines |
11:36:45 | gradha | dom96: do you win when playing against Bitpuffin? |
11:37:03 | dom96 | gradha: we play together |
11:37:24 | gradha | what do you play against then? |
11:38:02 | dom96 | other random people |
11:38:41 | gradha | fascinating |
11:40:35 | Araq | ddl_smurf: yes |
11:43:20 | * | brihat joined #nimrod |
12:14:02 | * | q66_ joined #nimrod |
12:14:43 | * | q66 quit (Disconnected by services) |
12:14:45 | * | q66_ is now known as q66 |
12:19:42 | * | BitPuffin joined #nimrod |
12:28:46 | dom96 | hello BitPuffin! |
12:28:59 | dom96 | We should do some coding today instead of playing Dota 2 I think :P |
12:29:26 | Araq | indeed |
12:29:31 | Araq | diff feature for nimbuild! |
12:29:41 | Araq | the tester needs to know about babel! |
12:30:17 | dom96 | That's a bit ambitious. |
12:30:25 | dom96 | And the nimbuild corruption still hasn't been fixed... |
12:33:07 | * | ddl_smurf quit (Quit: ddl_smurf) |
12:37:53 | Araq | so? waiting for that fix isn't wise |
12:45:43 | gradha | good luck |
12:45:47 | * | gradha quit (Quit: bbl, need to watch http://www.youtube.com/watch?v=dEf4PJZXBxA again) |
13:15:53 | * | Endy joined #nimrod |
13:23:12 | * | darkf quit (Quit: Leaving) |
14:02:00 | * | q66 quit (Ping timeout: 246 seconds) |
14:02:22 | * | q66 joined #nimrod |
14:19:06 | BitPuffin | ey dom96! |
14:19:10 | BitPuffin | wanna play dota xD |
14:19:12 | dom96 | hah |
14:19:18 | dom96 | well... |
14:20:06 | dom96 | I need to eat something first |
14:20:15 | BitPuffin | well I can't right now anyway |
14:20:19 | dom96 | ok |
14:20:22 | dom96 | when can you? |
14:20:23 | BitPuffin | there's too many people here |
14:20:26 | BitPuffin | hmm |
14:20:28 | BitPuffin | a bit later |
14:20:31 | BitPuffin | not way later I guess |
14:20:34 | BitPuffin | just a bit xD |
14:20:40 | dom96 | lol |
14:20:41 | dom96 | ok |
14:20:41 | BitPuffin | puffin |
14:21:05 | BitPuffin | Araq: wanna join us? Or are you still updating lol |
15:08:49 | * | [1]Endy joined #nimrod |
15:12:19 | * | Endy quit (Ping timeout: 260 seconds) |
15:12:20 | * | [1]Endy is now known as Endy |
15:37:43 | BitPuffin | is it even legal to make games that requires ~15 gb on the disk |
15:40:02 | * | Hannibal_Smith joined #nimrod |
15:43:16 | * | io2 quit () |
15:52:24 | * | EXetoC joined #nimrod |
16:07:45 | BitPuffin | dom96: are you ready? |
16:07:50 | BitPuffin | dom96: wee yu aaat |
16:19:45 | * | Hannibal_Smith left #nimrod ("Sto andando via") |
16:22:08 | dom96 | BitPuffin: I'm only making food now lol |
16:22:19 | BitPuffin | dom96: damn it |
16:28:30 | OrionPKM | fuck yeah |
16:28:34 | OrionPKM | screw sourcecode filters |
16:28:34 | OrionPKM | https://dl.dropboxusercontent.com/u/417554/jestertemplates.png |
16:29:12 | dom96 | niceee |
16:29:16 | dom96 | How does that work? |
16:29:25 | OrionPKM | macro magic |
16:29:43 | OrionPKM | parses through the string at compile time looking for non-repeating $'s |
16:30:48 | OrionPKM | $a-z0-9_ are treated as variables, ${ independent expressions }, $( ) are simple statements with .'s or []'s |
16:32:55 | dom96 | only problem is that it won't look as great on github. |
16:33:10 | OrionPKM | it'll still look better than a sourcecode filter :P |
16:34:19 | dom96 | so where is the package? :P |
16:34:51 | OrionPKM | heh the template stuff is up on my onion-nimrod repo, but i'm not satisfied with the output yet |
16:35:07 | OrionPKM | the indentation gets kinda fucked up still |
16:35:14 | OrionPKM | for the rendered HTML/js/css/whatever |
16:36:07 | OrionPKM | https://github.com/onionhammer/onion-nimrod/tree/master/templates |
16:36:11 | OrionPKM | afk a bit |
16:36:16 | BitPuffin | make your damn food dom96 ! |
16:36:17 | dom96 | I don't think you should worry about that too much. |
16:36:24 | dom96 | BitPuffin: I'm eating right now! |
16:44:25 | BitPuffin | dom96: eat faster!½ |
16:46:23 | fowl | hola |
16:47:08 | fowl | OrionPKM, very cool |
16:48:09 | OrionPKM | thanks |
16:51:35 | dom96 | BitPuffin: ok ok |
16:51:38 | dom96 | BitPuffin: rebooting now |
16:52:52 | OrionPKM | come on guys, less playing games, more making them |
16:58:19 | BitPuffin | dom96: sec |
16:58:30 | Varriount | Good morning guys! |
16:58:43 | fowl | i had a dream that i stole gta5 from someone at a store |
16:59:18 | OrionPKM | haha, thanks fowl |
16:59:21 | OrionPKM | morning varriount |
17:01:06 | * | gradha joined #nimrod |
17:01:47 | BitPuffin | dom96: now! |
17:15:57 | * | Mordecai is now known as psquid |
17:22:17 | * | ics quit (Ping timeout: 272 seconds) |
17:22:23 | OrionPKM | holy shit |
17:22:48 | OrionPKM | my company sent me some cookies and they're actually huge and giant and soft and delicious |
17:24:42 | * | ics joined #nimrod |
17:25:03 | OrionPKM | now i have diabetes |
17:34:04 | fowl | huge AND giant? :o |
17:36:07 | * | xenagi joined #nimrod |
17:36:35 | * | zielmicha quit (Ping timeout: 272 seconds) |
17:51:03 | * | zielmicha-cloud quit (Read error: Connection reset by peer) |
17:51:21 | * | zielmicha-cloud joined #nimrod |
18:02:34 | OrionPKM | yope. both |
18:02:52 | OrionPKM | huge and ginormous |
18:15:28 | * | zielmicha-cloud quit (Read error: Connection reset by peer) |
18:15:46 | * | zielmicha-cloud joined #nimrod |
18:26:15 | * | zielmicha joined #nimrod |
18:27:56 | Araq | zielmicha: bootstrapping on win works like on lin |
18:28:17 | zielmicha | I finally managed to do it |
18:28:22 | zielmicha | after installing virtio drivers |
18:29:06 | Araq | what? |
18:32:10 | zielmicha | I thought that bootstraping doesn't work, but Windows was just unbelievably slow on KVM without virtio |
18:35:58 | Varriount | zielmicha, if bootstrapping didn't work on windows, we wouldn't have windows builder. |
18:36:03 | Varriount | *builders |
19:04:59 | OrionPKM | course bootstrapping on windows works |
19:05:12 | OrionPKM | 90% of the time i do dev im on windows |
19:05:46 | OrionPKM | varriount forget about the source code filter stuff for the ST plugin |
19:21:04 | Araq | Varriount: your fix is wrong |
19:21:17 | Araq | just noticed it :P |
19:21:29 | Araq | result = f.cFilename[0].int == dot |
19:21:30 | Araq | if result: |
19:21:32 | Araq | result = f.cFilename[1].int in {dot, 0} |
19:21:33 | Araq | if result: |
19:21:35 | Araq | result = f.cFilename[2].int == 0 |
19:21:53 | Araq | but if filename[1] == 0 you shouldn't touch filename[2] |
19:29:55 | * | zielmicha-cloud quit (Ping timeout: 260 seconds) |
19:30:03 | * | OrionPKM quit (Remote host closed the connection) |
19:31:29 | * | zielmicha-cloud joined #nimrod |
19:38:22 | * | OrionPKM joined #nimrod |
19:38:36 | OrionPKM | ahh there we go |
19:39:38 | OrionPKM | transitioned my irc app off of sourcecode filters :) |
19:41:44 | zielmicha | gradha: did code you reported to have stopped working ever worked on Windows (https://github.com/Araq/Nimrod/issues/770)? |
19:49:37 | gradha | zielmicha: I don't use windows, don't think windows users have a shell anyway |
19:57:24 | * | zielmicha quit (Quit: Leaving.) |
19:57:35 | * | zielmicha joined #nimrod |
20:06:41 | * | Endy quit (Ping timeout: 272 seconds) |
20:12:24 | Varriount | Araq, you want me to fix it, or are you going to fix it? |
20:19:47 | Araq | Varriount: already fixed it |
20:20:04 | Varriount | gradha, cmd.exe |
20:20:57 | Varriount | gradha, As far as I know, neither Linux nor Windows is a kind of turtle. |
20:22:32 | Araq | zielmicha: I think it's perfectly fine to break "foo >file", it was never officially supported |
20:28:18 | Araq | hmm things like these really turn against us for the FFI support: |
20:28:24 | Araq | var SIGINT {.importc: "SIGINT", nodecl.}: cint |
20:51:49 | Varriount | Araq, howso? |
20:52:27 | Araq | well you can't import SIGINT from a DLL, it's a constant |
20:52:44 | Varriount | Oh. Ouch. |
20:53:44 | Varriount | Hm. I wonder why constants aren't included (besides the sake of efficiency/memory) |
20:53:58 | Araq | because they are #defines? |
20:54:23 | Varriount | Oh. Right. |
20:55:13 | gradha | objc guys spend a good deal wrapping defines around "extern cons" variables so they can change the value of the constant at runtime, defines are rare |
20:55:43 | Varriount | gradha, doesn't that defy the idea of a "constant"? |
20:55:59 | Araq | omg objc guys are misguided :P |
20:56:24 | Araq | the real solution is to notice constants affect binary compatibility and never ever change them |
20:56:26 | gradha | Varriount: the alternative is directx style "please fill in this structure the sizeof whatever you think it should be" |
20:56:43 | Varriount | Or do they only change the constant once, at the beginning of program setup? |
20:57:01 | Araq | how can you use those fake constants in a switch statement? |
20:57:07 | Araq | right you can't. well done |
20:58:00 | gradha | notifications in objc are even better, you have to pack objects, and those are runtime NSString ones, so every time you have a notification you strcmp stuff rather than compare to some integer |
20:58:31 | Araq | now of course that's not so bad in C as the switch statement is retarded anyway. Sucks for Nimrod though. |
20:59:02 | gradha | I've always wondered why API designers fear integers so much |
21:00:17 | Varriount | I thought the only big difference between Nimrod's switch/case and C's was the in/ability to 'fall through' the statements. |
21:01:22 | Araq | nimrod's does exhaustive checking and has a sane syntax |
21:05:26 | gradha | a dumptree of a comment shows CommentStmt without the data, does that mean you can't generate docstrings from a macro? |
21:06:09 | Araq | I dunno, it could also mean dumptree doesn't understand comments |
21:08:34 | gradha | interesting, the docstrings for a module seem to be all global comments concatenated together |
21:15:40 | * | io2 joined #nimrod |
21:15:42 | * | io2 quit (Changing host) |
21:15:42 | * | io2 joined #nimrod |
21:17:14 | Varriount | Are ast trees passed to a macro immutable? |
21:17:50 | Araq | nope |
21:18:17 | Araq | immutability tends to suck for construction |
21:18:43 | Varriount | Hrm. Then why would adding a colonExpr node to a procedure's pragma node not show up? |
21:19:03 | Araq | try with vm2 please |
21:19:11 | Araq | the old vm sucks for macro evaluation |
21:19:32 | Varriount | Araq, when are you going to merge vm2? |
21:20:07 | Araq | well type traits are still not on par with master |
21:20:16 | Varriount | Ah |
21:29:39 | Varriount | Araq, is it me, or does vm2 call gcc differently from master? |
21:30:23 | Araq | I didn't notice any difference. what's different? |
21:31:48 | Varriount | Nevermind, my error |
21:32:51 | Varriount | Wtf? -> test.nim(28, 28) Error: invalid pragma: cimport: "GLEW" |
21:33:38 | Varriount | Oh, importc, not cimport |
21:39:09 | * | zielmicha quit (Ping timeout: 240 seconds) |
21:57:13 | OrionPKM | varriount do you mind if i delete the sourcecode filter stuff |
21:57:24 | Varriount | OrionPKM, not at all. |
21:57:49 | Varriount | OrionPKM, I must ask though, why? |
21:59:55 | OrionPKM | it just seems like more trouble than it's worth.. unless you want to keep plugging away on it; i have no intention of updating it |
22:00:03 | OrionPKM | how far did you even get? |
22:00:27 | Varriount | OrionPKM, it works exactly as well as the regular syntax highlighting |
22:00:52 | OrionPKM | but w/ a diff file extension? |
22:01:20 | Varriount | And the comment marks taken into account. |
22:01:24 | OrionPKM | did you figure out a way to automatically update the YAML from the normal YAML? |
22:01:46 | Varriount | Not in any easy fashion |
22:02:10 | OrionPKM | mm, well, I've built something that fills the same kind of purpose as the source code filters |
22:02:18 | OrionPKM | and it's a lot easier to highlight |
22:02:19 | OrionPKM | https://dl.dropboxusercontent.com/u/417554/jestertemplates.png |
22:03:18 | Varriount | OrionPKM, 'tmpl'? |
22:03:54 | OrionPKM | tmpl and html are macros |
22:04:20 | OrionPKM | html/js/css/xml/glsl (so far) tell the syntax highlighter what syntax definition to use |
22:04:53 | OrionPKM | tmpl takes that 1 step further and breaks down the string into a series of statements |
22:05:16 | fowl | awesome work OrionPKM |
22:05:46 | OrionPKM | the html/etc annotations also re-indent the input string at compile-time |
22:06:30 | Varriount | OrionPKM, and the syntax highlighting? |
22:06:34 | Araq | indeed impressive work, OrionPKM |
22:06:48 | OrionPKM | varriount look at your repo |
22:06:54 | OrionPKM | thanks guys |
22:07:10 | OrionPKM | it's be nice if we had a way to automatically create the syntax highlighting for the sub-selectors |
22:07:16 | Varriount | OrionPKM, sorry I haven't worked on the highlighting in a bit |
22:07:28 | OrionPKM | as it is right now I have to copy-paste the YAML for each subselector I want to support |
22:08:21 | OrionPKM | tmpl isn't done yet, as I was telling dom earlier, the output indentation gets a little wacky |
22:08:38 | OrionPKM | that only really hurts human readability though |
22:08:40 | Varriount | OrionPKM, remember what I told you about dynamically generating a new syntax file? |
22:08:46 | OrionPKM | :D |
22:08:54 | OrionPKM | that YAML sucks? |
22:08:55 | OrionPKM | idk |
22:09:16 | Varriount | Well, that bit would be generating xml |
22:09:34 | OrionPKM | I was actually thinking about *using* tmpl to make the YAML :D |
22:10:30 | Varriount | OrionPKM, when you asked if I had figured out a way to automatically update the yaml, I wasn't talking about the bit concerning syntax file generation and the other language |
22:10:47 | OrionPKM | https://github.com/Varriount/Nimrod-Sublime/blob/master/nimrod.YAML-tmLanguage#L107 |
22:12:36 | Varriount | OrionPKM, as soon as I get my stuff for os.nim finished, Ill start work again on the syntax extension. |
22:12:45 | OrionPKM | cool |
22:14:15 | OrionPKM | i want to add in sublimeREPL support |
22:17:42 | gradha | Araq: do you mind if I replace the hardcoded rstgen.defaultConfig with a macro which reads config/nimdoc.cfg? |
22:18:49 | Araq | yes I do |
22:18:52 | * | boydgreenfield joined #nimrod |
22:20:08 | gradha | ok, won't do it then |
22:20:18 | Araq | btw you made highlite.nim not read doc/keywords.txt for the same reasons |
22:21:33 | gradha | ah, the relative path slurp bug |
22:23:44 | Araq | I'm not even sure it's a bug |
22:24:24 | Araq | slurp is not like import but more like readFile; readFile doesn't give a fuck about the compiler's notion of the current directory either |
22:25:11 | Araq | but I guess people think it's more like import ... |
22:25:38 | gradha | if you want people using static compilation there has to be a balance between not giving a fuck and having 3rd party library imports work |
22:26:51 | gradha | slurp could maintain the current behaviour, and use a prefix like "$mod" and "$pro" for paths, which would be replaced by the absolute path to the imported file and project |
22:26:56 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
22:27:11 | gradha | then people could write slurp"$mod/myfile.txt" and be sure it works |
22:27:45 | Araq | sure and then the VM that also supports 'slurp' depends on the compiler's path notion |
22:27:58 | Araq | but I guess the VM already depends on that anyway. *sigh* |
22:29:40 | gradha | I'm not so interested in $pro, but a $mod with the absolute path of the improted file being processed would help a lot in this case, does that break too much? |
22:30:12 | gradha | it seems like the compiler importing the module could define a constant "module_path" or something |
22:30:26 | gradha | and that would wonderfully break includes too |
22:30:29 | Araq | that sounds like a recipe for desaster |
22:30:42 | Araq | absolute paths are not the solution |
22:35:01 | * | Mordecai joined #nimrod |
22:37:00 | * | psquid quit (Disconnected by services) |
22:37:04 | * | Mordecai is now known as psquid |
22:37:24 | * | ddl_smurf joined #nimrod |
22:41:24 | gradha | the problem of bundling resources along code is not something new, and for some reason macosx seems to have solved it with bundles but the rest of the world refuses to catch on |
22:42:31 | Araq | whenever I have an icon on some .exe it's some working resource file mechanism going on |
22:42:52 | Araq | so exlcude windows from your rest of the world :P |
22:43:35 | gradha | I'm talking about 3rd party libraries, not binaries |
22:44:20 | gradha | bundles for libraries include the .a and also other resources loaded at runtime, the toolchain knows how to deal with that and include it into your program |
22:44:51 | gradha | the directory subdivision allows a library to have a Localized.strings and your main program also a Localized.strings, and they don't fight each other |
22:46:57 | gradha | so it's like a .dll + jpg + txt + whatever, and it goes in a single package for convenience |
22:47:30 | gradha | of course exes are wonderful, we still celebrate their naming convention |
22:48:34 | gradha | btw, rst* modules won't go into babel because it's used by the compiler, right? |
22:49:46 | Araq | right |
22:52:17 | gradha | nkCommentStmt are weird, no children, apparently no other useful values, and macros don't seem to run for "nimrod doc" anyway |
22:54:02 | Araq | yes |
22:54:10 | Araq | that's why we have doc2 ... |
22:54:49 | fowl | gradha, it should have a strval with the comment in it |
22:55:42 | gradha | Error: field 'strVal' cannot be found |
22:57:51 | Araq | no, comments are special |
22:58:24 | Araq | I think macros.nim supports getting the comment value though |
23:12:24 | gradha | oh, I know how to solve the 3rd party module static resource problem |
23:12:43 | gradha | the module uses a prefix for slurps |
23:12:54 | gradha | unless a specific constant is defined, this prefix is the empty string |
23:13:11 | Araq | ? |
23:13:16 | gradha | when the constant is defined, is used as the prefix path |
23:13:34 | gradha | so you can pass `babel path module` as the constant during compilation |
23:13:59 | Varriount | gradha, what if you have multiple 3rd party static modules? |
23:14:23 | * | io2 quit () |
23:14:23 | * | darkf joined #nimrod |
23:14:23 | gradha | each can use a different set of constants |
23:14:32 | gradha | -d:genieosRsrPath |
23:14:44 | gradha | -d:fowltekRsrPath |
23:14:48 | gradha | etc |
23:15:01 | Araq | gradha is kidding obviously |
23:15:40 | fowl | documentation is for newbs |
23:15:53 | fowl | if you want to see how to use it, look at the source code |
23:16:22 | Varriount | Since I do not have any direct experience with this kind of problem, all I can say is these: Find out the various ways that this problem has been solved before, list the pro's and con's of each, pick the best, and improve upon it. |
23:17:06 | Araq | alright, lets look at the languages which support 'slurp' at compile time. any suggestions? |
23:17:11 | * | boydgreenfield quit (Quit: boydgreenfield) |
23:17:12 | Varriount | To many problems of these kinds of problems are solved by 'new' solutions which completely miss taking into account their previous solutions. |
23:18:42 | gradha | Varriount: don't worry, Araq is right, I'm kidding, I don't have any of these problems I just invented. Now, if you could please stare into this light for a moment… thank you. |
23:18:52 | Araq | Varriount: that's a good point. However as long as all this knowledge doesn't end up as rants on reddit it's useless knowledge as it doesn't spread. |
23:19:02 | dom96 | I wonder why unicode exception messages are so messed up on Windows. |
23:19:13 | dom96 | Is that worth a bug report? |
23:19:24 | Varriount | dom96, howso? (I haven't encountered them) |
23:19:42 | dom96 | or maybe cmd.exe can't display unicode. |
23:20:00 | Araq | gradha: please fix 'slurp' so that it behaves like 'import' and document it. |
23:23:04 | dom96 | yeah, it's cmd.exe's fault. |
23:23:20 | dom96 | Have to change to unicode with 'chcp 65001' |
23:23:30 | Varriount | dom96, I think you have to enable command extensions |
23:23:43 | Araq | use a real OS. I heard Haiku is a good choice. |
23:24:10 | Varriount | http://stackoverflow.com/questions/14109024/how-to-make-unicode-charset-in-cmd-exe-by-default |
23:24:23 | Araq | it doesn't run any software, that too solves lots of problems |
23:26:57 | Varriount | Araq, it's really fun when you try to write a raw stream of random data to stdout in windows. You get fun symbols |
23:28:55 | Araq | yeah but that's your problem. should have used stderr instead. |
23:29:54 | Araq | I suggested 'stdbanana' but got outvoted |
23:30:06 | Varriount | :3 |
23:30:33 | Araq | at least they picked my suggestion to use "kill" for "send message" |
23:30:41 | NimBot | nimrod-code/babel master 422f247 Dominik Picheta [+0 ±1 -0]: Git checkout is now forced.... 4 more lines |
23:32:39 | Varriount | Wait, what? |
23:34:57 | Araq | well in my dreams I helped them to design unix |
23:35:09 | dom96 | you mean nightmares right? |
23:35:36 | Araq | no |
23:36:05 | gradha | stderr and stdout screams for a stdnormalin and stderrin, because you want to pipe between programs, the cornerstone of unix |
23:36:43 | Araq | unix is a very nice OS when you have no idea what the word "operating" means |
23:38:29 | gradha | dom96: doesn't chcp have a "chcp unicode" alias? |
23:38:43 | dom96 | no idea |
23:48:19 | brihat | I was looking at the doc page of "channels", but it doesn't mention how to create a new TChannel. Is there a spwan() function or somweething? |
23:48:53 | Araq | there is actors.spawn |
23:49:10 | Araq | you need to open a channel |
23:49:14 | fowl | brihat, declare it, then open() |
23:49:35 | brihat | ah, i see |
23:54:37 | Varriount | Gah. I wish there was some way to magically enhance point and click games made 15+years ago. |
23:55:13 | brihat | there are two 'nimrod' executables. one in compiler/ and another in bin/ . Was this changed recently or what? |
23:55:51 | Varriount | brihat, the one in compiler is the first version generated by koch boot |
23:56:20 | brihat | how do i make it replace the on in bin/ ? |
23:56:41 | Varriount | brihat, it does, after the boot process is done. |
23:57:24 | Varriount | brihat, koch generates two versions of nimrod in succession, in order to make sure the compilation process is generating the correct code. |
23:58:07 | Varriount | The final built executable ends in bin, the temporary versions up in compiler/ |
23:58:18 | brihat | ok, i see now.. the last line says "executables are equal: SUCCESS!" |