00:10:38 | * | Trixar_zb is now known as Trixar_za |
00:19:09 | * | EXetoC quit (Quit: WeeChat 0.4.1) |
00:31:08 | * | DAddYE_ joined #nimrod |
00:31:08 | * | DAddYE quit (Read error: Connection reset by peer) |
00:41:11 | * | DAddYE_ quit (Remote host closed the connection) |
00:41:51 | * | DAddYE joined #nimrod |
00:46:37 | * | DAddYE quit (Ping timeout: 268 seconds) |
01:33:55 | reactormonk | where does the pragma go? var integer: prog_ptr[int] {.progmem.} = 53 |
01:34:12 | reactormonk | ah, var integer: prog_ptr[int] = 53 {.progmem.} |
01:34:29 | reactormonk | hm, nope |
01:35:03 | reactormonk | kk, found it. it's var integer {.progmem.} : prog_ptr[int] = 53 |
01:35:26 | reactormonk | and how, it is possible to typecast with a macro? Or templating. |
01:36:07 | reactormonk | s/macro/pragma/ |
01:42:09 | * | DAddYE joined #nimrod |
01:46:33 | * | DAddYE quit (Ping timeout: 256 seconds) |
02:11:11 | * | Associat0r joined #nimrod |
02:11:11 | * | Associat0r quit (Changing host) |
02:11:11 | * | Associat0r joined #nimrod |
03:08:42 | * | DAddYE joined #nimrod |
03:34:02 | * | DAddYE quit (Remote host closed the connection) |
04:14:20 | * | Trixar_za is now known as Trix[a]r_za |
05:41:50 | * | OrionPK quit (Read error: Connection reset by peer) |
06:36:57 | * | DAddYE joined #nimrod |
07:09:58 | * | DAddYE quit (Read error: Connection reset by peer) |
07:13:57 | * | DAddYE joined #nimrod |
07:44:36 | * | DAddYE quit (Remote host closed the connection) |
08:16:12 | * | ack006 quit (Quit: Leaving) |
09:32:24 | * | q66 joined #nimrod |
09:40:09 | * | Associat0r quit (Quit: Associat0r) |
09:40:14 | * | EXetoC joined #nimrod |
09:41:31 | * | shafire joined #nimrod |
09:41:34 | shafire | hi |
09:42:02 | Araq | hi shafire |
09:42:48 | shafire | Wie geht's? |
09:43:19 | Araq | meine Frau ist schwanger. Schon wieder ... :-/ |
09:43:35 | shafire | :-\, anscheinend schlecht :-S |
09:43:42 | shafire | Wieviele Kinder habt ihr schon? |
09:44:32 | shafire | Ich würde gerne wissen, warum ein JVM Backend nicht möglich ist. (Laut FAQ: A JVM backend is almost impossible.). Was macht Nimrod anders als Scala, dass es nicht geht? |
09:48:55 | * | EXetoC quit (Ping timeout: 260 seconds) |
09:50:05 | Araq | wenn ich den Kerl erwische ... ;-) |
09:50:30 | shafire | Meinst du mit dem Kind oder der das in die FAQ geschrieben hat? |
09:50:41 | Araq | das mit dem Kind natürlich |
09:50:54 | shafire | Also nicht von dir? :S |
09:50:58 | Araq | so ... the question is why a JVM backend is impossible. Well it's not impossible, but lots of work and won't be as fast |
09:51:19 | Araq | Das war ein Scherz, shafire. :-) |
09:51:40 | shafire | Übers Internet ist schwarzer Humor für mich sogar nackt nicht erkennbar :D |
09:52:03 | Araq | Schwanger ist sie allerdings wirklich ;-) |
09:52:34 | shafire | Dann wird die erste Sprache Nimrod für das Kind werden :) |
09:54:30 | shafire | So, it's easier to write a compiler to C than to the JVM? |
09:59:25 | Araq | yeah especially if you want to support 'cast' and low level programming |
09:59:42 | Araq | the JVM doesn't really support all that |
10:00:12 | Araq | in fact, JS with its typed arrays which can be used for 'cast' is a better target than the JVM now |
10:04:27 | * | EXetoC joined #nimrod |
10:09:28 | Araq | why do you want to run nimrod on the jvm, shafire? |
10:27:45 | dom96 | hrm, what do you guys think? Should I submit babel to r/programming? |
10:33:30 | Araq | dom96: it's not cool enough as it's entirely Nimrod related |
10:33:40 | Araq | like nimbuild it's part of the infrastructure |
10:33:41 | dom96 | D: |
10:34:02 | Araq | you need to submit something that has a goal of its own |
10:34:10 | Araq | like a gameboy simulator :P |
10:34:24 | dom96 | *emulator :P |
10:34:31 | Araq | yeah |
10:34:52 | dom96 | I dunno, I think it's still worth submitting it |
10:35:02 | dom96 | Just to remind people that Nimrod is progressing |
10:35:17 | Araq | come on |
10:35:38 | Araq | how many posts until "yeah and it has 16 packages in its repository. LOL" |
10:35:59 | dom96 | hrm true lol |
10:36:38 | dom96 | well help me with my os dev endeavour then |
10:39:38 | Araq | ok, pastebin what you have |
10:40:19 | dom96 | there is quite a lot... |
10:40:46 | dom96 | I'll pastebin the stuff I changed |
10:42:24 | dom96 | Araq: https://gist.github.com/dom96/977ea1d474bc91c74eb9 |
10:45:55 | dom96 | if I missed something let me know |
10:46:06 | Araq | well it might take a while |
10:46:16 | Araq | I named your project domos btw |
10:46:23 | Araq | pretty cool name, huh? |
10:46:35 | dom96 | sure why not |
10:47:01 | dom96 | save system.nim, nimbase.h into ./zerolib |
10:47:16 | dom96 | and excpt.nim into well ./zerolib/system/ obviously. |
10:47:47 | dom96 | and you can copy any other files that system.nim includes from the original lib |
10:47:56 | Araq | I know |
10:47:59 | Araq | don't worry |
10:49:28 | nihathrael | dom96: hi, just giving the implementation of the ctrl+D line delete feature a try. I think if we could make the suggestion feature sort the results by name, that could be a huge improvemnet |
10:50:02 | dom96 | nihathrael: They are not sorted by name because the compiler is meant to give them in order of relevance. |
10:51:17 | nihathrael | ah, ok |
10:51:32 | dom96 | The suggest feature needs a lot more work. |
10:51:56 | dom96 | It needs to run the compiler in CAAS mode. |
10:52:07 | nihathrael | yeah, making it actually display a method signature where it is suggesting a method could make sense as well |
10:52:09 | dom96 | to make it faster |
10:52:26 | dom96 | I think it does that already? |
10:53:07 | nihathrael | it does in the "documentation" panel |
10:53:10 | nihathrael | but not in the list |
10:53:57 | dom96 | hrm, yeah perhaps showing the signature inline in the list would be better |
10:54:21 | shafire | Araq: No, I was just curios about it. I do not need the JVM. |
10:55:16 | nihathrael | yea, I think for quick navigation that would be quite helpful |
10:58:16 | nihathrael | dom96: which documentation of gtk2 do you use, the source seems to be using methods which I can not find documented here http://www.nimrod-code.org/gtk2.html |
10:58:38 | dom96 | nihathrael: http://build.nimrod-code.org/docs/gtk2.html |
11:02:48 | dom96 | Araq: oh btw I realised why the deprecation warnings are still there. I was fixing them on Windows heh. |
11:03:46 | nihathrael | thanks |
11:17:03 | Araq | dom96: nimrod c main.nim |
11:17:04 | Araq | config/nimrod.cfg(36, 11) Hint: added path: '/home/andreas/.babel/libs/' [Path] |
11:17:06 | Araq | Hint: used config file '/home/andreas/projects/nimrod/config/nimrod.cfg' [Conf] |
11:17:07 | Araq | Hint: used config file '/home/andreas/domos/nimrod.cfg' [Conf] |
11:17:22 | Araq | note how it processes the default config file first |
11:17:31 | dom96 | yes, that's correct isn't it? |
11:17:34 | Araq | that means your switch -d:release doesn't work |
11:17:51 | dom96 | huh, why? |
11:17:51 | Araq | because when it sets "release" it's too late to have any effect |
11:18:06 | dom96 | oh, I see how it works. |
11:18:08 | Araq | I wonder if that's a general problem with aporia etc. too |
11:18:25 | Araq | it's bad to set -d:release in a config file |
11:18:30 | dom96 | For some reason I thought it worked in reverse, so it was fine. |
11:18:43 | Araq | well it has to work this way |
11:18:51 | Araq | otherwise you can't overwrite things, right? |
11:19:01 | dom96 | yeah |
11:19:59 | Araq | now if I do: nimrod c -d:release main.nim |
11:20:10 | Araq | it says: "Error: system module needs 'initStackBottom'" |
11:20:32 | dom96 | yes. |
11:20:34 | dom96 | Same here. |
11:31:45 | Araq | well I disabled newException and then commented where it's used |
11:31:58 | Araq | and then it works the same in non-release mode |
11:32:13 | dom96 | it compiles? |
11:32:14 | Araq | so the newObj clearly came from new(e) |
11:32:26 | Araq | no, but it now it moans about setstackbottom |
11:33:19 | dom96 | well I just added an initStackBottom and it doesn't moan anymore |
11:33:25 | Araq | good |
11:33:40 | Araq | does it compile now? |
11:33:48 | dom96 | sec |
11:43:12 | Araq | dom96: I'm updating the system stuff to use a new template and no 'raise' statements |
11:43:24 | Araq | so the implementation is way easier to change |
11:43:30 | dom96 | hrm, ok. |
11:43:52 | dom96 | I think after I implement this it would be worth adding to the tester to make sure it still works. |
11:44:00 | Araq | indeed |
11:44:04 | Araq | that was my plan to |
11:44:18 | Araq | btw nimrod.cfg is deprecated |
11:44:23 | Araq | you should use main.nimrod.cfg |
11:44:52 | dom96 | ok |
11:46:43 | Araq | btw there is an embedded.nim that's your minimal excpt.nim |
11:46:59 | Araq | and --os:standalone should trigger that |
11:49:50 | dom96 | I thought we were getting rid of --os:standalone? |
11:50:19 | Araq | I don't know |
11:50:57 | Araq | I think it should work but include rawoutp.nim which we don't provide |
11:51:10 | Araq | so the user has to provide that file |
11:51:46 | Araq | this way no messing with system.nim may work |
11:52:38 | Araq | as I said messing with system.nim can affect you ability to do stuff at compile time |
11:53:12 | Araq | but then I guess we simply need --lib and --ctlib (compile time lib) |
11:53:36 | dom96 | perhaps, yes. |
11:57:04 | dom96 | well, my "OS" boots. |
11:57:13 | dom96 | And prints some funny characters but that's it :P |
11:57:30 | Araq | ok, that should do to beat Linux |
11:57:41 | Araq | at least on the server market |
11:57:45 | dom96 | lol |
12:06:15 | dom96 | wouldn't it make more sense if toU16 returned a uint16? |
12:06:39 | Araq | perhaps :P but it predates uint16 |
12:06:52 | dom96 | fix it :P |
12:06:54 | Araq | you can use uint16(x) if you need an uint16 |
12:07:07 | Araq | so there is nothing to fix |
12:08:48 | dom96 | omg. |
12:09:00 | dom96 | I have to cast everything... |
12:09:45 | Araq | that's usually a sign of doing it wrong |
12:09:56 | dom96 | probably yeah. |
12:10:46 | nihathrael | dom96: opened a PR for the ctrl+d delete line shortcut, let me know if there is anything I should change. This is my first "nimrod" code besides my 20 test lines, so feel free to tear it appart |
12:11:26 | dom96 | nihathrael: Awesome, will check it out once I'm done playing around with this "OS". |
12:55:52 | dom96 | I did it :D |
12:57:00 | Araq | you did what, dom96? |
12:57:09 | dom96 | The OS works :D |
12:57:14 | dom96 | It shows characters! |
12:58:15 | nihathrael | Araq: by which metric does the suggest feature determine the ordering it produces? |
13:00:58 | Araq | nihathrael: by scope |
13:01:13 | Araq | the innermost scope is most important |
13:01:34 | dom96 | "qemu: fatal: Trying to execute code outside RAM or ROM at 0xeb12c0ec" cool :D |
13:02:34 | dom96 | whoa wtf |
13:03:30 | dom96 | how did I manage "while 0 <=% 80*25:" |
13:06:46 | EXetoC | are enumerators initialized as unsigned or something? "4294967294 (invalid data!)" |
13:09:25 | EXetoC | are they supposed to be able to hold negative values? I'll open another issue later then, along with the one regarding ranges |
13:09:33 | dom96 | Araq: It would be cool if you could create a standalone system.nim but provide hooks in case people want to slowly implement stuff like memory functions etc, but I would understand if that's just too complex. |
13:10:09 | Araq | EXetoC: negative values should work for enums |
13:10:14 | EXetoC | alright |
13:10:39 | * | zahary____ joined #nimrod |
13:11:29 | Araq | dom96: this might work due to --path ordering side effects, so you can override includes |
13:12:27 | * | zahary___ quit (Ping timeout: 246 seconds) |
13:12:50 | EXetoC | it's just the automatic conversion that fails ('echo enumVar' for example) |
13:14:04 | Araq | strange, I fixed that years ago already |
13:14:22 | EXetoC | oh |
13:17:33 | * | EXetoC is now known as EXetoC_ |
13:36:00 | NimBot | nimrod-code/Aporia master fd50725 Thomas Kinnen [+0 ±1 -0]: Add "Delete Line" menu point and shortcut (ctrl+d).... 4 more lines |
13:36:00 | NimBot | nimrod-code/Aporia master a715fd9 Dominik Picheta [+0 ±1 -0]: Merge pull request #35 from nihathrael/master... 2 more lines |
13:36:09 | dom96 | nihathrael: Great job :) |
13:42:15 | nihathrael | thanks :) anything code wise you'd like to see differently? |
13:45:41 | dom96 | I'm not entirely certain what the purpose of your usage of forwardCursorPosition/backwardCursorPosition is? |
13:49:47 | nihathrael | that is needed to not only delete the contents of the line, but to actually make the line disappear |
13:50:02 | nihathrael | so as to not end up with an empty line, but no line instead |
13:50:37 | dom96 | oh I see. |
13:51:46 | dom96 | Well, in that case it's perfect. Although you misspelled "cursor" :P |
13:56:52 | nihathrael | lol, I thougt I corrected it everywhere |
13:57:08 | nihathrael | i'll commit that with the next pr ;) |
13:59:54 | dom96 | heh, alright. |
14:00:39 | * | shafire quit (Ping timeout: 250 seconds) |
14:03:47 | nihathrael | currently trying to pimp the suggest output a little |
14:05:24 | dom96 | cool. I didn't expect Nimrod strings to work with no C stdlib, but they do. |
14:10:55 | EXetoC_ | ftw |
14:28:01 | dom96 | http://picheta.me/images/nimrodos.png :D |
14:32:38 | EXetoC_ | :> |
14:34:16 | EXetoC_ | neat |
14:37:29 | * | OrionPK joined #nimrod |
14:52:00 | EXetoC_ | metaprogramming almost makes library wrapping not boring |
14:57:13 | Araq | c2nim makes it boring :P |
14:58:32 | Araq | nihathrael: feel free to play with compiler/suggest.nim to change the output order |
14:59:05 | Araq | apart from scope it uses the order of the hash table which is stupid |
14:59:13 | Araq | bbl |
14:59:37 | EXetoC_ | sure |
15:00:08 | EXetoC_ | what are the humans supposed to do if the computers steal our work? :< |
15:02:32 | * | Associat0r joined #nimrod |
15:02:32 | * | Associat0r quit (Changing host) |
15:02:32 | * | Associat0r joined #nimrod |
15:02:36 | dom96 | Send a terminator back through time. |
15:02:57 | EXetoC_ | sarcasm? if so, then yes of course I think that c2nim also helps :p |
15:16:16 | * | q66 quit (Quit: Leaving) |
15:42:42 | * | Endy joined #nimrod |
17:18:27 | Araq | dom96: do you remember what we did about that "doesn't build on latest ubuntu"-bug? |
17:19:08 | dom96 | well, no. But it's in the logs somewhere |
17:19:11 | dom96 | I'll find it |
17:19:27 | * | zahary joined #nimrod |
17:21:11 | dom96 | 11:09:19 dom96 21:32:26 Araq you can edit line 195 of nimbase.h |
17:21:12 | dom96 | 11:09:19 dom96 21:32:51 Araq so that HAVE_LRINT are not defined anymore and then it should work |
17:21:39 | Araq | yeah well, lrint is not used by the codegen anymore nor by system.nim |
17:25:15 | dom96 | ok |
17:33:54 | * | XAMPP-8 joined #nimrod |
17:36:08 | Araq | hmm "panic" is cooler than "rawoutp", right? |
17:36:20 | Araq | it's the name of the include file you need for --os:standalone |
17:37:24 | dom96 | huh? 'panic' doesn't seem to be a good description for a file? |
17:37:35 | dom96 | what will this include file er.... include? |
17:37:51 | Araq | the file should contain the implementation of a "panic" proc |
17:38:03 | Araq | that is invoked when an out of range error etc. is detected |
17:38:34 | * | q66 joined #nimrod |
17:38:44 | dom96 | ahh |
17:38:59 | dom96 | call it 'customerror'? |
17:39:07 | dom96 | or something |
17:39:23 | Araq | not cool enough |
17:40:28 | dom96 | 'panicoverride' |
17:40:30 | dom96 | :P |
17:40:48 | Araq | damn |
17:40:53 | Araq | now that's cool |
17:40:56 | dom96 | :D |
17:41:12 | dom96 | Yep, in fact it sounds like a rock band name. |
17:41:21 | Araq | I can already imagine the red button |
17:44:06 | Araq | but --os:standalone doesn't work |
17:45:05 | Araq | for instance, it is possible to make the GC work in kernel mode I think |
17:45:24 | Araq | but it depends on much memory you have |
17:45:31 | Araq | *how much |
17:46:00 | dom96 | allow me to disable the GC then? |
17:46:16 | Araq | that's --gc:none |
17:47:05 | Araq | well I still don't know what "standalone" should mean |
17:48:58 | reactormonk | Araq, hostos: standalone? |
17:49:16 | Araq | reactormonk: that's what I'm talking about, yes |
17:49:41 | dom96 | like I said, it should mean: no dependency on the C standard lib but allow me to reimplement the stdlib myself. |
17:49:55 | Araq | on the other hand the documentation is quite clear: |
17:50:00 | reactormonk | Araq, no files, no malloc. |
17:50:15 | Araq | The standard library can be avoided to a point where C code generation |
17:50:16 | Araq | for 16bit micro controllers is feasible. Use the `standalone`:idx: target ... |
17:51:12 | dom96 | So you fixed it so that it doesn't depend on the C stdlib anymore? |
17:51:45 | Araq | yes |
17:52:18 | dom96 | ok, then what is unclear? |
17:52:29 | Araq | nothing the docs are clear :P |
17:52:42 | reactormonk | and no signals. |
17:52:53 | Araq | reactormonk: got rid of them too |
17:54:06 | dom96 | You should make it clearer by stating that C code generated with --os:standalone will compile when using the -nostdlib switch during linking with gcc |
17:56:42 | dom96 | And also document how to implement these things manually :P |
17:57:12 | Araq | if I can do it, it's obvious and doesn't need any documentation :P |
17:57:50 | dom96 | document it anyway :P |
17:58:43 | dom96 | fowl: I think the license in nake's babel file is inconsistent with the license in nake.nim |
18:01:01 | * | Trix[a]r_za is now known as Trixar_za |
18:22:15 | * | fowl quit (Quit: EliteBNC free bnc service - http://elitebnc.org) |
18:32:57 | * | fowl joined #nimrod |
18:35:17 | * | fowl quit (Changing host) |
18:35:17 | * | fowl joined #nimrod |
18:37:06 | dom96 | so what should I name it? |
18:37:10 | dom96 | nimrodos |
18:37:13 | dom96 | nimrodboot |
18:37:15 | dom96 | nimboot |
18:37:16 | dom96 | nimOS |
18:37:21 | dom96 | NimKernel? |
18:37:30 | Araq | DomOS! |
18:37:35 | dom96 | o. |
18:37:36 | dom96 | *no |
18:37:42 | Araq | Domix? |
18:37:51 | dom96 | It's meant to be a starting point for creating kernels in Nimrod |
18:38:02 | Araq | "Dom" means "cathedral" in German btw |
18:38:08 | dom96 | I will create DomOS later |
18:38:16 | dom96 | "Dom" means "house" in Polish :P |
18:39:11 | OrionPK | so polacks live in cathedrals? |
18:40:31 | dom96 | Perhaps |
18:41:12 | Araq | that's why we had to invade them |
18:43:11 | dom96 | What should I call it!? |
18:43:34 | * | fowl quit (Quit: EliteBNC free bnc service - http://elitebnc.org) |
18:44:05 | Araq | daKernel |
18:44:28 | Araq | coreKernel |
18:44:29 | dom96 | come on, this is suppose to be reddit material |
18:44:38 | dom96 | like that rust kernel |
18:44:56 | Araq | nmrdkrnl |
18:45:08 | Araq | that's cool because it has no vowel |
18:45:11 | OrionPK | ala babel to nimrod? |
18:45:35 | dom96 | OrionPK: Nah, a name which includes 'nimrod' |
18:45:39 | dom96 | or 'nim' |
18:45:46 | dom96 | Maybe I will just go for 'nimkernel' |
18:45:50 | Araq | yeah |
18:48:36 | * | fowl joined #nimrod |
18:48:57 | * | q66 quit (Quit: Leaving) |
18:49:57 | * | q66 joined #nimrod |
18:58:52 | fowl | dom96, right, ill fix it |
19:00:05 | fowl | can i just call it DATWPL |
19:00:29 | fowl | or should i call it WTFPL because thats what its based on, with some old english words |
19:09:37 | dom96 | fowl: Is that an actual license or did you just make it up? :P |
19:11:08 | fowl | i made it up but that doesnt make it less valid does it |
19:11:22 | EXetoC_ | "when false: proc `$`*[T](a: openArray[T]): string" does it not work for some reason? |
19:11:47 | dom96 | fowl: true, yeah, go ahead. |
19:12:19 | dom96 | You might wanna cover your ass and say that the software is provided as-is though heh |
19:12:35 | fowl | ah ok |
19:12:45 | dom96 | dunno if that is necessary, i'm not lawyer. |
19:13:30 | fowl | EXetoC_, i think there is some disagreement to how $(openarray) should look |
19:15:49 | EXetoC_ | it seems like a good idea to make it look like a valid expression |
19:15:50 | NimBot | Araq/Nimrod master c531d1d Araq [+4 ±12 -0]: --os:standalone works again |
19:15:57 | fowl | openarray[T] would match seq[T], and i like $(seq[T]) to come out like "@[1, 2, 3]" but an openarray should be like "[1, 2, 3]" |
19:15:58 | EXetoC_ | D's formatting lib allows this to be customized very easily |
19:16:21 | EXetoC_ | ok |
19:19:53 | Araq | fowl: that's no problem, implement a seq[T] too then, it should match better |
19:20:10 | fowl | ill try it out |
19:20:25 | EXetoC_ | I'm not sure why it should be disabled just for that reason, but ok |
19:20:28 | Araq | EXetoC_: it's been disabled because "openArray" used to imply "varargs" |
19:20:42 | Araq | and thus it would match *everything* |
19:20:53 | EXetoC_ | ok |
19:21:03 | Araq | we could enable it now I think |
19:23:04 | fowl | Araq, it works |
19:24:39 | fowl | great now i have aporia open so i should work on something |
19:25:23 | Araq | fowl: a 3d engine in Nimrod would be sweet ;-) |
19:26:35 | fowl | i started on one |
19:26:51 | fowl | i need to read more about 3d programming tho |
19:27:38 | fowl | https://github.com/fowlmouth/nimlibs/tree/master/fowltek/musings/nim3d |
19:28:07 | Araq | fowl: give it a readme and fake screenshots and reddit it ;-) |
19:28:40 | Araq | it doesn't seem to matter to produce anything that's production ready for reddit |
19:29:06 | Araq | dom96: port your OS to the new --standalone target please |
19:29:19 | dom96 | Araq: Why doesn't this work? https://gist.github.com/dom96/f0a8bc693afc925915d1 |
19:29:32 | fowl | dom96, and put it in a freaking repo |
19:29:40 | fowl | they're free |
19:29:58 | dom96 | fowl: No way! It's secret proprietary technology that I wish to sell to Microsoft! |
19:30:31 | fowl | dom96, hey i looked at the gist you pasted earlier, it looks like -- is required for some options but not all of them? |
19:30:42 | dom96 | I am in the process of submitting a patent for my rainbow proc! |
19:30:57 | * | fowl- joined #nimrod |
19:30:59 | Araq | dom96: bug report but it looks hard to support :P |
19:31:24 | dom96 | fowl: I think all options support either syntax. |
19:32:02 | dom96 | Perhaps it would be a good idea if I make it consistent. |
19:32:30 | dom96 | Araq: ok |
19:32:40 | fowl | put out your kernel so i can fork it and make NimDOS |
19:32:41 | dom96 | Araq: It would be awesome in my kernel :P |
19:34:06 | dom96 | yes! 500th issue is mine! |
19:34:08 | dom96 | https://github.com/Araq/Nimrod/issues/500 |
19:36:31 | Araq | dom96: I think I'll make let x = TTest(2, 23) work instead :P |
19:36:47 | dom96 | sure, that's acceptable. |
19:41:10 | OrionPK | so who wants to try to wrap this : https://github.com/ValveSoftware/source-sdk-2013 |
19:41:54 | Araq | OrionPK: the srouce engine only supports a single map ... |
19:42:47 | dom96 | yes! Someone wrap it! |
19:43:02 | dom96 | I will create my own HL3 instead of waiting for silly gaben to learn to count to 3. |
19:45:53 | OrionPK | araq a single map ingame? |
19:46:05 | fowl | what wrapping is needed? is there an api for modules or something like that |
19:46:29 | dom96 | I'm guessing it's C++ :\ |
19:46:38 | Araq | OrionPK: yeah that's right. A single map for Dota 2. |
19:47:01 | dom96 | hahaha |
19:47:43 | dom96 | Araq has a vendetta towards Dota 2 because of this apparently. |
19:47:49 | OrionPK | ;D |
19:48:04 | dom96 | That's how dota 2 works damn it! |
19:48:15 | dom96 | Although I would guess modders created other maps |
19:48:18 | reactormonk | Araq, oh, dota 2 just has a shitload of heroes instead of a shitload of maps ;-) |
19:48:29 | fowl | i always wanted an FPS where you play as yoshi |
19:48:40 | fowl | >_> |
19:48:55 | fowl | throwing eggs and eating things |
19:49:07 | dom96 | I always wanted an FPS where I play as a porn star :P |
19:49:19 | fowl | there are porn games |
19:49:37 | reactormonk | template progmem(name: expr, content: expr) = var name {.progmem.} : prog_ptr[typeof(content)] = content |
19:49:43 | reactormonk | what's the correct way to do this? |
19:49:54 | reactormonk | oh, a generic. |
19:50:13 | fowl | you cant declare a variable with a generic |
19:50:42 | reactormonk | it's a template? |
19:50:51 | reactormonk | template progmem[T](name: expr, content: T) = |
19:50:54 | reactormonk | var name {.progmem.} : prog_ptr[T] = content |
19:50:54 | Araq | can somebody please run: |
19:51:04 | reactormonk | lib/system/arduino.nim(47, 35) Error: undeclared identifier: 'T' |
19:51:14 | Araq | nimrod c -r tests/compile/tmacrotypes.nim |
19:51:16 | fowl | reactormonk, the way you had it before was right |
19:51:29 | * | Araq wondered if that test ever worked |
19:51:31 | reactormonk | lib/system/arduino.nim(47, 40) Error: undeclared identifier: 'typeof' |
19:51:39 | reactormonk | tests/compile/tmacrotypes.nim(4, 5) Error: unhandled exception: ref EAssertionFailed |
19:51:46 | Araq | good. |
19:51:51 | Araq | so I didn't break it |
19:52:01 | reactormonk | Araq, so it isn't typeof |
19:52:12 | Araq | reactormonk: it's type(x) |
19:52:49 | reactormonk | var name {.progmem.}: prog_ptr[type(content)] = content |
19:53:14 | reactormonk | cast here? |
19:53:18 | fowl | how do you use it |
19:53:24 | dom96 | Araq: nimcache/system.c:7:19: fatal error: stdio.h: No such file or directory |
19:54:22 | * | Trixar_za is now known as Trix[a]r_za |
19:55:28 | NimBot | Araq/Nimrod master 9a8173c Araq [+0 ±4 -0]: made some tests green |
19:55:32 | Araq | dom96: try again please |
19:56:42 | fowl | nimrod just failed to compile :o |
19:57:15 | dom96 | Araq: still fails |
19:57:22 | fowl | http://pastebin.com/7B0T34Yc |
19:57:44 | fowl | trying again without -d:useffi |
20:00:54 | reactormonk | Araq, hm. PROGMEM NI* integer_73213; |
20:00:58 | reactormonk | integer_73213 = ((NI*) (53)); |
20:01:04 | reactormonk | ... inside the function. |
20:01:30 | reactormonk | pretty sure it doesn't work fine that way |
20:01:54 | Araq | reactormonk: I got it to work |
20:02:15 | * | XAMPP-8 quit (Ping timeout: 268 seconds) |
20:04:43 | Araq | dom96: my fix was correct but I missed a few occurances :P |
20:06:18 | dom96 | ahh |
20:06:45 | Araq | but ugh |
20:06:51 | Araq | no there is a different bug |
20:06:53 | Araq | *now |
20:08:01 | Araq | oh no .. there isn't lol |
20:08:09 | Araq | stupid deadCodeElim :P |
20:10:03 | dom96 | looks like I will move my "writeString" and other out into a separate modules so that panicoverride can reuse it. |
20:10:27 | NimBot | Araq/Nimrod master 952c920 Araq [+0 ±3 -0]: fixes --os:standalone |
20:10:40 | Araq | fowl: -d:useffi should work again |
20:10:56 | fowl | ok will try after this cig |
20:13:48 | dom96 | Araq: it works :) |
20:14:21 | Araq | now was that sooo hard? it only took me half a day |
20:15:11 | dom96 | it took me 1.5 days :P |
20:15:16 | * | Endy quit (Ping timeout: 276 seconds) |
20:15:34 | dom96 | not too bad for someone who has no clue about os dev |
20:15:42 | * | fowl quit (Ping timeout: 240 seconds) |
20:15:58 | Araq | dom96: internet ftw ;-) |
20:16:11 | dom96 | precisely |
20:19:48 | * | fowl joined #nimrod |
20:20:08 | * | fowl quit (Client Quit) |
20:20:27 | * | fowl- quit (Changing host) |
20:20:27 | * | fowl- joined #nimrod |
20:21:13 | * | XAMPP-8 joined #nimrod |
20:23:08 | fowl- | dom96, do you use your normal gcc to build the kernel |
20:23:48 | dom96 | no, you need to build a cross-compiler. |
20:24:06 | Araq | dom96: document it |
20:24:12 | dom96 | yeah, I will. |
20:24:22 | dom96 | What would be the best way to get the location of nimbase.h? |
20:24:43 | Araq | nimbase.h is in $lib ;-) |
20:25:16 | dom96 | I need to get the location from my nakefile. |
20:25:16 | * | Endy joined #nimrod |
20:25:19 | Araq | but I trimmed it down to the essentials so there should be no reason to mess with it |
20:25:30 | dom96 | or hrm |
20:26:51 | * | BitPuffin joined #nimrod |
20:27:37 | dom96 | Araq: lol |
20:27:46 | dom96 | Araq: Your nimbase.h doesn't work: nimbase.h:376:13: error: size of array assert_numbits is negative |
20:27:58 | Araq | nope |
20:28:07 | Araq | that means you lied about your --cpu |
20:28:13 | fowl- | my gcc is x86_64, i cant use it to build for x86 ? |
20:29:00 | dom96 | Araq: I am cross-compiling after all.. |
20:30:23 | Araq | dom96: you need to set --cpu to the proper thing |
20:30:30 | dom96 | oh ok |
20:30:32 | Araq | and that's your *target* CPU |
20:31:12 | dom96 | what do I set for i586? |
20:31:29 | Araq | --cpu:i386 |
20:36:56 | dom96 | Araq: Should I be worried about calling the systemInit/systemDatInit/moduleInit/.../ functions? |
20:38:21 | Araq | no unless your CPU doesn't support function calls |
20:38:52 | dom96 | lol |
20:47:28 | * | Endy quit (Ping timeout: 246 seconds) |
20:55:20 | fowl- | how do i propose a new file |
20:55:29 | fowl- | (lua52.nim) |
20:57:49 | Araq | why would you want lua52 fowl- ? luajit doesn't support it afaik |
20:58:22 | fowl- | Araq, it will one day |
20:58:28 | dom96 | What should I make the OS print? |
20:59:08 | fowl- | dom96, "Expressive. Efficient. Elegant." make it loop :D |
20:59:28 | dom96 | lol, I don't want to cover the whole screen with text. |
20:59:31 | dom96 | But that sounds good :P |
20:59:51 | fowl- | do the matrix falling characters animation :D |
21:01:35 | dom96 | That would be complicated :P |
21:01:56 | dom96 | lets see if I can get exceptions to work |
21:05:18 | EXetoC_ | dom96: have it play nyancat.mpg |
21:05:40 | dom96 | EXetoC_: haha, brilliant. |
21:15:40 | dom96 | Araq: How can I test this panic stuff without implementing alloc? |
21:16:06 | Araq | panic doesn't need to alloc |
21:16:15 | * | XAMPP-8 quit (Ping timeout: 268 seconds) |
21:16:16 | Araq | check out the example implementation |
21:16:31 | dom96 | what activates it? |
21:16:52 | Araq | some runtime check like array bounds checking |
21:18:33 | reactormonk | Araq, which one? |
21:24:53 | dom96 | Araq: Will exceptions also end up in 'panic'? |
21:26:01 | Araq | dom96: any exception that system.nim can raise |
21:26:44 | * | BitPuffin quit (Ping timeout: 268 seconds) |
21:27:09 | * | EXetoC_ quit (Quit: WeeChat 0.4.1) |
21:29:15 | * | EXetoC joined #nimrod |
21:30:03 | reactormonk | dom96, why are you interested in the standalone? |
21:30:14 | dom96 | i'm coding a kernel? |
21:30:37 | reactormonk | kk |
21:40:11 | fowl- | idk how to propose this file https://gist.github.com/fowlmouth/5737311 |
21:40:14 | reactormonk | dom96, did I push my system.nim modifications? |
21:40:22 | fowl- | msaybe ill just throw it in fowltek |
21:40:35 | Araq | reactormonk: no, I did modify system.nim heavily |
21:41:12 | reactormonk | Araq, that merge will be a pain... |
21:42:41 | reactormonk | pushed the stuff to the `standalone` branch |
21:42:48 | NimBot | Araq/Nimrod standalone 894b880 Simon Hafner [+0 ±2 -0]: added InSystemModule for hti.nim |
21:42:48 | NimBot | Araq/Nimrod standalone f9a5cd4 Simon Hafner [+0 ±1 -0]: PSTR for arduino literals |
21:42:48 | NimBot | Araq/Nimrod standalone ddfcedd Araq [+0 ±1 -0]: bugfix: pragmas allowed for implicit generics |
21:42:48 | NimBot | Araq/Nimrod standalone 4eea3fc Simon Hafner [+24 ±94 -1]: Merge remote-tracking branch 'upstream/master' into standalone |
21:42:48 | NimBot | 1 more commits. |
21:43:52 | Araq | reactormonk: merging shouldn't be necessary, just use my system.nim :P |
21:44:09 | reactormonk | Araq, now what did I do all that work for |
21:44:55 | Araq | sorry, that happens if something becomes Chefsache |
21:45:26 | reactormonk | :-P |
21:46:13 | reactormonk | merge conflicts in basically all of the core files |
21:46:18 | reactormonk | Araq, just take your stuff? |
21:47:29 | fowl- | where's nimbot;'s code |
21:47:39 | reactormonk | Araq, I also defined noDynamicAlloc, which you do not seem to have |
21:48:15 | reactormonk | panicoverride <- sweet |
21:48:48 | dom96 | fowl-: In the nimbuild repo |
21:49:13 | fowl- | can i run him locally without nimbuild |
21:49:19 | reactormonk | Araq, and there is no seq in standalone - unless you have an allocator. |
21:49:56 | reactormonk | looks like there's a standalone with allocator and one without |
21:50:03 | dom96 | fowl-: I don't think so. |
21:50:07 | dom96 | Why would you want to? |
21:50:53 | fowl- | dom96, i wanted to add some features, namely recognizing #500 as issue 500 and linking to it, recognizing urls and announcing the page title |
21:51:54 | dom96 | oh, I see, so you want to run it locally. |
21:52:14 | dom96 | Add a little command line switch so that it doesn't connect to nimbuild I guess. |
21:55:47 | Araq | reactormonk: well --os:standalone doesn't have any allocator |
21:56:08 | reactormonk | Araq, so why is seq still in there? |
21:56:51 | Araq | well you can have constant sequences, reactormonk |
21:57:03 | reactormonk | Araq, sweet, didn't know that |
21:57:14 | reactormonk | thought those are called arrays |
21:57:16 | Araq | though it's not really useful, you might as well use an array then |
21:57:22 | fowl- | dom96, i think i will just write that stuff and test it locally |
21:57:36 | dom96 | fowl-: sure that works too |
21:57:59 | fowl- | have anything against the re module? |
21:58:42 | Araq | fowl-: it's not pure ;-) |
21:58:59 | dom96 | http://picheta.me/images/nimkernel.png |
21:59:02 | dom96 | Good? |
21:59:09 | dom96 | For a readme.md screenshot? |
21:59:19 | Araq | dom96: the colors are offensive |
21:59:23 | Araq | but impressive work |
21:59:32 | dom96 | what? |
21:59:34 | fowl- | agreed need better coors |
21:59:35 | fowl- | colors |
21:59:44 | dom96 | How can colors be offensive? :P |
21:59:45 | fowl- | Araq, the system probably has pcre |
21:59:47 | fowl- | the linux one at least |
22:00:02 | Araq | the "It's a pure pleasure" is ugly, dom96 |
22:00:16 | fowl- | dom96, whats that error from, the index out of bounds is that an exception |
22:00:17 | reactormonk | Araq, and new requires ref, which is also not available |
22:00:18 | dom96 | Well I have to show off my rainbow function. |
22:00:22 | Araq | also your code has an out of bounds bug |
22:00:26 | reactormonk | Araq, or do you want standalone to be able to have an allocator |
22:00:35 | dom96 | Araq: It's intentional to demonstrate the error handling, duh! |
22:00:48 | Araq | just as I suspected then, dom96 :D |
22:01:28 | dom96 | The rainbow function basically moves through the colors in two directions. |
22:01:43 | dom96 | I could skip colors... |
22:02:02 | dom96 | The magenta is the ugly one really |
22:02:22 | dom96 | or do you dislike the whole "rainbow" thing? |
22:02:50 | fowl- | dom96, id do the capital E's blue or something |
22:02:58 | fowl- | IRT terminal colors, a light touch is best |
22:03:07 | Araq | the rainbow is fine I think |
22:03:22 | dom96 | Like I said, it's meant to show off the rainbow function. |
22:03:29 | dom96 | The rainbow function can't just color the E's |
22:03:47 | fowl- | dom96, existence of function X is not reason enough to use it |
22:04:12 | EXetoC | everybody loves yellow |
22:04:33 | fowl- | lol |
22:04:40 | Araq | reactormonk: I like --os:standalone as it is; should be good enough for everything now |
22:04:42 | fowl- | EXetoC, come on bust dom96 's chops with us |
22:05:07 | dom96 | Yellow is nice :P |
22:05:20 | reactormonk | Araq, I have the snimstring and the genericseq stuff in a when not defined(noDynamicAlloc) |
22:05:25 | fowl- | dom96, is this based off the osdev tutorial |
22:05:31 | dom96 | fowl-: yep |
22:06:11 | Araq | reactormonk: we already have --gc:none and -d:useMalloc and stuff; it's already overwhelming to keep all combinations working |
22:07:08 | reactormonk | Araq, so which keyword should I use? |
22:07:58 | Araq | why do you need one? what's wrong with the compiler nagging you if you use 'seq' at runtime that --os:standalone doesn't support? |
22:08:01 | dom96 | ok, everyone refresh, is it better now? |
22:08:21 | reactormonk | Araq, should nag at compiletime |
22:08:31 | Araq | reactormonk: but it does |
22:08:39 | reactormonk | kk |
22:08:43 | fowl- | dom96, i like it |
22:08:53 | Araq | dom96: argh. you made it worse |
22:08:58 | fowl- | dom96, i like your window deco too, what WM do you use |
22:09:02 | dom96 | Araq: Screw you, fowl- likes it |
22:09:04 | dom96 | :P |
22:09:07 | Araq | the capital I is unreadable |
22:09:23 | dom96 | Araq: You're blind my friend. |
22:09:23 | Araq | use fewer colors |
22:09:47 | dom96 | I'd say the first 'r' is bare readable. |
22:09:52 | dom96 | *barely |
22:09:58 | dom96 | fowl-: Cinnamon |
22:10:03 | fowl- | yea |
22:10:03 | Araq | true that too |
22:10:31 | fowl- | any kind of rainbow effect on console looks terrible IMO |
22:10:48 | fowl- | but that looks a lot better than it did |
22:10:51 | dom96 | ok, fine lets make it more complex! |
22:18:54 | dom96 | I ended up skipping 8 colors... |
22:19:06 | dom96 | But at least I demo sets :P |
22:19:22 | fowl- | dom96, is that out of bounds an exception in the kernel itself |
22:19:40 | dom96 | yes |
22:19:49 | fowl- | what happens then, is it halted? |
22:19:59 | dom96 | var outOfBounds = vram[magic + 781637] |
22:20:04 | dom96 | Basically what I do :P |
22:20:36 | dom96 | http://picheta.me/images/nimkernel2.png |
22:20:38 | dom96 | Better? |
22:20:42 | dom96 | fowl-: It keeps running |
22:20:48 | Araq | you would get an error at compile time if I ever had finished that feature :P |
22:21:05 | Araq | dom96: now it's nice |
22:21:56 | dom96 | I don't like it anymore lol |
22:22:00 | dom96 | but meh |
22:33:35 | NimBot | Araq/Nimrod master 57dc0c2 Araq [+0 ±1 -0]: made parseBiggestFloat faster for large exponents |
22:33:52 | dom96 | Anyone up for doing this? http://pandacodium.ca/ |
22:36:00 | dom96 | Araq: Any more reliable ways to get an out of bounds error? :P |
22:36:27 | fowl- | dom96, i was interested until i read "web applications" :/ |
22:36:37 | dom96 | fowl-: Don't like web apps? |
22:36:44 | fowl- | no |
22:36:58 | fowl- | not into the html/js/css ratrace |
22:37:33 | Araq | dom96: no... it will say "warning: can't prove array access to be correct" otherwise :P |
22:37:35 | dom96 | that's not all that web apps are about |
22:38:00 | dom96 | Araq: ahh ok, well the thing I'm worried about is that if the value of 'magic' changes... |
22:38:07 | dom96 | the error will not appear |
22:39:57 | fowl- | dom96, vram[len(vram)] ? |
22:40:24 | Araq | dom96: don't worry there are more important things left to do |
22:41:29 | dom96 | fowl-: yeah, that's better thx. |
22:45:59 | Araq | good night |
22:46:15 | dom96 | Araq: Won't stay around for the release of my OS? :( |
22:46:40 | dom96 | I am almost done |
22:47:00 | Araq | well you have 15 minutes for that then |
22:47:05 | dom96 | cool |
22:49:27 | * | zahary quit (Quit: Leaving.) |
22:53:28 | dom96 | https://github.com/dom96/nimkernel |
22:53:34 | dom96 | There it is. |
22:54:20 | dom96 | My cross-compile compilation instructions need testing though |
22:55:13 | dom96 | The yellow makes my eyes hurt now lol |
22:56:27 | dom96 | I think I might change it to a dark grey background |
22:58:14 | dom96 | meh, that looks bad |
22:58:39 | Araq | This is a small 32bit (i586) written |
22:58:39 | Araq | "kernel" missing :P |
22:58:50 | dom96 | lol |
22:59:06 | EXetoC | very unprofessional |
22:59:18 | * | XAMPP-8 joined #nimrod |
22:59:55 | dom96 | fixed |
22:59:57 | Araq | dom96: you need to mention that it requires Nimrod HEAD |
23:00:07 | dom96 | I did |
23:00:14 | Araq | and you need to provide a screenshot :-( |
23:00:18 | dom96 | I did! |
23:01:51 | NimBot | nimrod-code/packages master 9969b09 Billingsly Wetherfordshire [+0 ±1 -0]: Update packages.json |
23:01:51 | NimBot | nimrod-code/packages master adddff7 Dominik Picheta [+0 ±1 -0]: Merge pull request #19 from fowlmouth/patch-6... 2 more lines |
23:02:17 | Araq | also s/C/Nimrod in the comments in boot.s |
23:03:08 | dom96 | why? |
23:03:52 | dom96 | but yeah ok |
23:05:00 | dom96 | There fixed. |
23:07:50 | Araq | TMultiboot_header{.pure, final.} = object |
23:07:50 | Araq | that's not necessary anymore: |
23:07:50 | Araq | TMultiboot_header = object |
23:07:50 | Araq | does the same |
23:07:50 | Araq | --gc:none |
23:07:50 | Araq | -d:useMalloc |
23:07:51 | Araq | are not necessary anymore |
23:07:52 | Araq | whoooaaa |
23:07:52 | Araq | you import something in panicoverride and it works! :O |
23:08:07 | fowl- | o cool you used nake |
23:09:46 | Araq | this means "import" works in system.nim. Very interesting. |
23:09:46 | Araq | as panicoverride is included by system.nim |
23:09:46 | Araq | dom96: I love your code :-) |
23:10:17 | dom96 | Araq: Thanks :) |
23:10:26 | dom96 | ok, i'll remove those. |
23:10:31 | dom96 | fowl-: Yeah, it's very handy :) |
23:11:36 | fowl- | im not sure how to do it but id like to use nimrod -i to run the nakefile so it doesnt have to be compiled |
23:12:15 | fowl- | will #!/usr/bin/env nimrod i suffice for that |
23:12:26 | dom96 | lol oops |
23:12:39 | dom96 | I just realised that I mixed up foreground and background. |
23:13:24 | Araq | it's sweet |
23:15:56 | Araq | fowl-: that's not gonna work I think |
23:16:16 | Araq | you can try "nimrod e" though |
23:18:36 | Araq | good night |
23:22:42 | fowl- | night |
23:23:01 | * | Associat0r quit (Read error: Connection reset by peer) |
23:23:20 | dom96 | ok, time to submit to reddit I guess |
23:23:55 | fowl- | bash: ./test.nim: nimrod: bad interpreter: No such file or directory |
23:23:59 | fowl- | why do i get this |
23:24:03 | fowl- | nimrod is on PATH |
23:24:16 | * | Associat0r joined #nimrod |
23:24:16 | * | Associat0r quit (Changing host) |
23:24:16 | * | Associat0r joined #nimrod |
23:26:52 | dom96 | http://www.reddit.com/r/programming/comments/1he4eb/nimkernel_a_small_32bit_kernel_written_in_nimrod/ |
23:26:58 | dom96 | There. |
23:27:55 | fowl- | upvoting when i get my passwd back |
23:30:20 | dom96 | Lets hope I wake up to lots of positive comments like "OMG I MUST USE NIMROD NOWWW" |
23:31:03 | OrionPK | upboated, but you never know with reddit posts |
23:31:06 | dom96 | fowl-: Please try it out when you get some free time, and if you find any instructions which are incorrect let me know. |
23:31:07 | OrionPK | very hit or miss |
23:31:16 | fowl- | dom96, ok |
23:31:18 | dom96 | OrionPK: Thanks :) |
23:31:40 | fowl- | i happen to have the gcc set up from that article already, so ;) |
23:31:48 | dom96 | cool :D |
23:33:38 | dom96 | ok, time for shower bbl |
23:36:29 | fowl- | works for me |
23:44:33 | EXetoC | cats |
23:44:36 | EXetoC | meow |
23:47:01 | EXetoC | time to mess about with nake. shell scripts go a long way though, since the compiler caches stuff and what have you |
23:47:31 | EXetoC | but they're not portable obviously. screw windows though :p |
23:57:57 | dom96 | back |
23:59:26 | EXetoC | ok it segfaults |
23:59:51 | dom96 | lol |