02:20:14 | * | ccssnet quit (Quit: http://atccss.net) |
02:21:05 | reactormonk | Araq, I assume you're gone? |
02:21:17 | reactormonk | got this wierdass error |
02:21:28 | * | ccssnet joined #nimrod |
02:22:31 | dom96 | reactormonk: I'm still here |
02:23:56 | reactormonk | dom96, yeah, still the JS problem |
02:26:18 | reactormonk | oh, it's somewhere entirely different |
02:26:43 | dom96 | reactormonk: Ask him anyway and he'll get back to you. |
02:27:37 | reactormonk | ... wtf. |
02:27:57 | dom96 | ? |
02:29:05 | reactormonk | can't reproduce it :-/ |
02:31:00 | dom96 | wish I could help... |
02:35:17 | reactormonk | curl http://sprunge.us/AGAX -O kwin.zip |
02:35:25 | reactormonk | try compile tiling.nim |
02:35:33 | reactormonk | warning: tarbomb |
02:40:39 | dom96 | sec |
02:47:47 | dom96 | reactormonk: Can't get it to unzip |
02:51:59 | NimBot | nimrod-code/Aporia e223b60 Dominik Picheta [+0 ±1 -0]: Added mnemonics to close confirm dialogs. |
02:51:59 | NimBot | nimrod-code/Aporia 813ddd2 Dominik Picheta [+0 ±4 -0]: The docs from suggest are now parsed using the compiler's RST parser. |
02:52:05 | dom96 | Anyway, I have to go to sleep now. |
02:52:06 | dom96 | Good night |
02:54:34 | * | fowl quit (Quit: Leaving) |
03:16:55 | reactormonk | dom96, http://ompldr.org/vaDg1cA |
04:57:05 | * | codeallergy quit () |
06:20:59 | * | SchalaZeal joined #nimrod |
06:22:29 | * | SchalaZeal quit (Client Quit) |
08:23:39 | reactormonk | Araq, ^ |
08:56:57 | Araq | pong reactormonk |
09:23:48 | * | Anaphaxeton joined #nimrod |
09:23:53 | Anaphaxeton | hello #nimrod |
09:24:02 | Araq | welcome Anaphaxeton |
09:25:04 | Araq | you should ask fowl for help when he's around |
09:25:13 | Anaphaxeton | ok |
09:25:33 | Anaphaxeton | in the meantime i would like to include nimrod to my platform |
09:25:43 | Araq | and search github for games and game library wrappers |
09:25:53 | Araq | there are a couple for nimrod around |
09:25:53 | Anaphaxeton | do i just need a C ompiler and libc? |
09:26:04 | Araq | for the compiler itself, yes |
09:26:12 | Anaphaxeton | what else |
09:26:26 | Araq | depends on your needs |
09:26:33 | Anaphaxeton | has nimrod been tested with musl-libc? |
09:26:39 | Araq | you need GTK for Aporia for instance |
09:26:44 | Anaphaxeton | ok |
09:26:49 | Anaphaxeton | GTK2 or 3? |
09:26:52 | Araq | what's musl-libc? :-) |
09:27:03 | Araq | gtk2 or 3 shouldn't matter |
09:27:04 | Anaphaxeton | google! tiny-performant-standard |
09:27:18 | Araq | dunno, I guess not |
09:27:30 | Anaphaxeton | ok i will do the testing then |
09:27:50 | Araq | great |
09:28:38 | Araq | nimrod runs on the raspberry pi and on smartphones but I guess they all use libc |
09:29:08 | Anaphaxeton | if it works with bionic maybe it would work with musl too |
09:31:49 | Anaphaxeton | its good nimrod doesnt need bootstrapping |
09:31:55 | Anaphaxeton | i ve had enough with this so far |
09:32:04 | Araq | er |
09:32:11 | Araq | it does need bootstrapping |
09:32:22 | Araq | but everybody does it all the time |
09:32:29 | Araq | so it tends to work ;-) |
09:37:01 | Anaphaxeton | could you make a bried description of the process? |
09:37:13 | Anaphaxeton | i would like to do it now at the LFS tools phase |
09:50:15 | Anaphaxeton | so build.sh does the whole bootstrap by itself? |
09:50:19 | Anaphaxeton | i see it is pretty long |
09:52:32 | Anaphaxeton | i will not create it yet |
09:52:41 | Anaphaxeton | i will wait for the definite system |
09:52:47 | Anaphaxeton | it seems to integrate easily |
09:58:50 | Araq | apotheon: https://github.com/Araq/Nimrod#compiling |
09:58:59 | Araq | sorry, Anaphaxeton: https://github.com/Araq/Nimrod#compiling |
09:59:27 | Anaphaxeton | oh my |
09:59:32 | Anaphaxeton | nimrod in nimrod |
10:00:04 | Araq | yeah but we ship with the generated C code |
10:00:25 | Araq | so it works quite nicely imho |
10:00:30 | Araq | bbl |
10:01:00 | Anaphaxeton | i agree with righting compilers in their own language |
10:01:04 | Anaphaxeton | writing* |
10:02:29 | Anaphaxeton | this means i must install nimrod first on my host |
10:03:05 | Araq | depends, cross compiling is possible too |
10:03:22 | Anaphaxeton | hehe |
10:03:35 | Anaphaxeton | nimrod exists in arch's open repository |
10:04:05 | Araq | I think that package is pretty broken |
10:05:39 | Anaphaxeton | will it not be able to at least create a nimrod? |
10:08:02 | Anaphaxeton | she is biggy |
10:09:07 | Anaphaxeton | which file is the runtime? |
10:12:24 | Anaphaxeton | or do we always link statically? |
10:19:04 | Anaphaxeton | Araq, the package built |
10:38:25 | * | q66 joined #nimrod |
10:52:06 | Araq | Anaphaxeton: yay :-) |
10:52:24 | Araq | the default is a static build, yes |
10:52:34 | Anaphaxeton | <Anaphaxeton> i think i got it |
10:52:34 | Anaphaxeton | <Anaphaxeton> no need to do a multiphase bootstrap |
10:52:35 | Anaphaxeton | <Anaphaxeton> instead when i will have a good toolchain the first thing will be to build nimrod |
10:52:48 | Anaphaxeton | with build.sh |
10:53:05 | Anaphaxeton | then we will see if it like musl libc too |
10:54:01 | Araq | yeah |
10:54:55 | Anaphaxeton | great! it doesnt even need libgcc :D |
10:58:47 | Anaphaxeton | that is good for clang |
11:03:59 | Anaphaxeton | should i guess it is easy to make bindings for C APIs? |
11:04:05 | Anaphaxeton | and hard for C++? |
11:04:22 | Araq | it's a bit quirky for C++ |
11:04:49 | Anaphaxeton | will i have to expose a C API first? |
11:04:51 | Araq | check out c2nim: http://nimrod-code.org/c2nim.html |
11:05:32 | Araq | exposing a C API first is the clean way but people also simply hack around with 'importcpp', 'emit' and C++ code generation |
11:06:32 | Anaphaxeton | ok |
11:06:39 | Anaphaxeton | c2nim should be helpful |
11:06:46 | Anaphaxeton | i have this problem |
11:06:53 | Anaphaxeton | which toolkit to use above directfb |
11:07:19 | Anaphaxeton | ilixi is small and "native" meaning it uses directfb's special abstractions |
11:07:24 | Anaphaxeton | but is C++ |
11:07:47 | Anaphaxeton | EFL/elementary is C but they abandoned the C backend and it is significantly larger and possibly slower |
11:08:05 | Araq | I'd write my own |
11:08:11 | Anaphaxeton | toolkit? |
11:08:15 | Araq | yeah |
11:08:15 | Anaphaxeton | omg |
11:08:18 | Anaphaxeton | no |
11:08:29 | Anaphaxeton | i would prefer to focus on the final GUI |
11:08:50 | Anaphaxeton | what integrates the desktop to the underlying system |
11:09:03 | Anaphaxeton | maybe i could steal ideas from ilixi |
11:09:19 | Anaphaxeton | and implement them in nimrod |
11:09:22 | Anaphaxeton | ilixi is small |
11:09:24 | Anaphaxeton | like 600kb |
11:09:35 | Araq | 600kb is pretty big |
11:09:44 | Anaphaxeton | for a gui toolkit? |
11:09:57 | Anaphaxeton | with only depencency the graphicks backend? |
11:10:00 | Araq | hrm I guess not |
11:10:14 | Anaphaxeton | o kand a coupel more |
11:11:00 | Araq | we're talking about UI in a game context, right? |
11:11:18 | Anaphaxeton | no, in a OS context |
11:11:58 | Araq | hrm, which layer do you mean: GTK or X11? |
11:12:03 | Araq | or something else? |
11:12:30 | Anaphaxeton | instead of X11, directfb, and instead of GTK either EFL/elementary or ilixi |
11:12:45 | Anaphaxeton | GUI wars will start soon |
11:12:48 | Anaphaxeton | and i wanna join |
11:12:53 | Anaphaxeton | now that wayland is here |
11:13:18 | Anaphaxeton | the problem is what language should i use for the GUI tools? |
11:13:26 | Anaphaxeton | like the partition manager |
11:13:29 | Anaphaxeton | the file manager |
11:13:33 | Anaphaxeton | etc etc |
11:13:43 | Anaphaxeton | i want something easy to hack yet fast |
11:13:47 | Anaphaxeton | thus the luajit |
11:14:22 | Anaphaxeton | but nimrod seems interesting |
11:14:38 | Anaphaxeton | with the not so many volunteers handicap as i told you before |
11:18:56 | q66 | <Anaphaxeton> EFL/elementary is C but they abandoned the C backend and it is significantly larger and possibly slower |
11:19:00 | q66 | what do you mean by "abandoned"? |
11:19:05 | q66 | nothing is abandoned |
11:19:19 | Anaphaxeton | oh sorry |
11:19:20 | q66 | you can use everything from C directly, doing shit through Edje is just another way to do things. |
11:19:26 | Anaphaxeton | s/C/directfb |
11:19:32 | q66 | oh |
11:19:38 | q66 | dunno about directfb |
11:19:40 | Anaphaxeton | makes sense now huh? |
11:19:42 | Anaphaxeton | :S |
11:20:01 | q66 | it seems the directfb backend is still there in Evas |
11:20:07 | Anaphaxeton | they used to support fbdev, directfb, x11, xrender, glx |
11:20:14 | Anaphaxeton | they told me they removed it |
11:20:21 | q66 | what? |
11:20:25 | q66 | no, no such thing happened. |
11:20:33 | q66 | direcfb, x11 etc is still there. |
11:20:36 | Anaphaxeton | q66 are you involved with E ? |
11:20:40 | q66 | yes |
11:20:44 | Anaphaxeton | cool! |
11:20:50 | q66 | http://svn.enlightenment.org/svn/e/trunk/devs/quaker/ 'tis me |
11:21:26 | Anaphaxeton | good to have you around! |
11:21:57 | Anaphaxeton | E is very nice |
11:21:59 | q66 | Anaphaxeton, anyway, yes, a few of the backends are gone (cocoa-soft etc) |
11:22:06 | q66 | but direcfb, x11 etc are still there |
11:22:09 | Anaphaxeton | even its C API is easy to use |
11:22:32 | q66 | Anaphaxeton, http://svn.enlightenment.org/svn/e/trunk/IN-EFL/evas/src/modules/engines/ |
11:22:36 | q66 | the backends currently there. |
11:22:44 | Anaphaxeton | and i like it that the framework doesnt make abstractions over abstractions |
11:23:04 | Anaphaxeton | like using evas objects in elementary |
11:23:09 | Anaphaxeton | sounds efficient |
11:23:17 | Anaphaxeton | even though i am not proficient in all this |
11:23:24 | dom96 | Anaphaxeton: welcome to #nimrod! :) |
11:23:34 | q66 | yes, that everything is an evas objects makes things easy to use together without having to abstract everything |
11:23:34 | Anaphaxeton | thank you dom96 ! |
11:23:41 | q66 | so that libs can be independent and still can be used together |
11:24:09 | Anaphaxeton | i find the whole EFL structure very flexible |
11:24:14 | Anaphaxeton | let me check the backends now |
11:24:18 | dom96 | Araq: The Nimrod package in the AUR works pretty well I think. |
11:24:24 | q66 | Anaphaxeton, anyway, there should be no problem with using EFL from Nimrod if you want (I haven't tried it myself, but it should work just fine from any language with some sort of C FFI) |
11:24:35 | q66 | I used it from LuaJIT with C FFI and it works fine :) |
11:25:48 | Anaphaxeton | wayland_egl sounds cool too |
11:26:03 | Anaphaxeton | btw directfb supports egl too |
11:26:03 | q66 | I've been planning to make LuaJIT bindings of complete EFL (low-level bindings and "high-level" bindings on top of that with metatable stuff) but it's currently off my priority list as I'm too busy with other things |
11:26:16 | Anaphaxeton | it is a good idea |
11:26:19 | Anaphaxeton | but it can wait |
11:26:56 | q66 | Araq, can c2nim handle preprocessor macros? |
11:26:59 | Anaphaxeton | tbh who would want to build above EFL with Lua? |
11:27:26 | Anaphaxeton | like that guy that made a Lua binding for DirectFB |
11:27:34 | Anaphaxeton | or javascript! |
11:27:40 | q66 | I know a guy who's writing a window manager in Lua |
11:27:54 | Anaphaxeton | for pleasure or to conquer the universe? |
11:28:12 | q66 | probably the former |
11:28:19 | q66 | the language has a lot of uses, it's small and flexible |
11:28:21 | Anaphaxeton | then it sounds great |
11:28:26 | Anaphaxeton | lua is very nice to work with |
11:28:34 | Anaphaxeton | yeah |
11:28:55 | Anaphaxeton | do you think the 5.2 update was necessary? |
11:29:16 | q66 | Lua has a bunch of things I don't like so much, but the pros are larger than the cons |
11:29:27 | q66 | Anaphaxeton, 5.2 brought several much-needed things into the language |
11:29:27 | Anaphaxeton | tell me about the cons |
11:29:41 | Anaphaxeton | doesnt luajit provide many of them? |
11:29:46 | q66 | it does |
11:30:05 | q66 | e.g. goto, __ipairs and __pairs metamethods, fixed __len metamethod, and other things |
11:30:53 | Anaphaxeton | looking at evas-dfb |
11:30:55 | q66 | one useful thing it doesn't have, and 5.2 has though: in 5.2 you can unpack() pretty much any number of items you want |
11:30:57 | Anaphaxeton | it is rather small |
11:31:03 | Anaphaxeton | maybe too simplistic too? |
11:31:14 | q66 | in lua 5.1/luajit it's up to like 100k only |
11:31:33 | Anaphaxeton | <Anaphaxeton> looking at evas-dfb |
11:32:01 | q66 | well, the evas engines aren't large |
11:32:28 | q66 | most of the work is done outside, the engine only needs to hook it with the underlying lib |
11:32:48 | Araq | q66: c2nim eats C's preprocessor for lunch :P |
11:33:11 | Araq | you have to differentiate between #def and #define though |
11:33:58 | q66 | <Anaphaxeton> tell me about the cons >> i would prefer better control over strings, better handling of nil in arrays, maybe improved module system (though the low level one is alright) |
11:34:12 | q66 | i had some complaints over 5.1, which 5.2 mostly fixed |
11:34:16 | Anaphaxeton | q66, i cannot comment on those |
11:34:22 | Anaphaxeton | i am doing basic usage of lua |
11:34:28 | Anaphaxeton | ie just scripting |
11:34:47 | q66 | i would like if more things were expressions in Lua |
11:34:50 | q66 | e.g. assignment |
11:35:27 | q66 | maybe better control over multiple retvals |
11:35:43 | q66 | oh, and also that assignments into undeclared variables create globals |
11:35:46 | q66 | that's a bad behavior |
11:35:54 | q66 | JS has the same issue here |
11:36:04 | q66 | perl with "use strict;" does it right |
11:36:33 | Araq | q66: there is a wiki article about why lua's default on globals is the right thing |
11:36:42 | Araq | was pretty convincing |
11:37:02 | q66 | Araq, in Lua it's a lesser issue than in other languages, but it's still an issue IMO |
11:37:24 | Anaphaxeton | directfb is creating a newer drawing api. i will C if i can help with evas-dfb in the future |
11:37:24 | q66 | it's a lesser issue because you can always overload the metatable on _G and implement the strict behavior yourself |
11:37:34 | Araq | the article was quite convincing in that lexical scoping really requires this behaviour |
11:37:59 | Araq | I know about the _G metatable but that's a hacky solution imo |
11:38:14 | q66 | it's a pretty clean solution, but you don't get any syntactic sugar for it |
11:38:36 | Araq | however, I guess simply requiring globals to be defined via 'local' at the file scope would work too |
11:38:45 | Araq | or perhaps a 'global' keyword |
11:38:53 | q66 | the latter would be better |
11:39:02 | q66 | "local" at file scope is a different thing |
11:39:04 | q66 | and useful one too |
11:39:20 | Araq | what does it mean? 'private'? |
11:39:25 | q66 | Araq, in Lua the file scope is a function, so it's per-file local |
11:39:53 | Araq | ah |
11:40:08 | Araq | pretty weird but then I dunno how lua's module system works |
11:40:10 | q66 | you can still get the raw "function" via debug api or something and e.g. eval the file recursively :) |
11:40:55 | q66 | Araq, Lua module system is very low level - basically, you create an associative table of your API functions and "return" it from the module |
11:41:13 | q66 | then other module calls require("modname") to include the module, and require() returns the return values of the file. |
11:41:45 | q66 | require() internally saves the return values of that file into cache, so if you require() that module again, it just returns the values and doesn't re-eval the module |
11:42:41 | q66 | there is a variable package.path that specifies search paths for modules |
11:43:00 | q66 | and there is also package.searchers table, which has a bunch of module "searchers" - it's an array of functions |
11:43:13 | q66 | when you require(), it first calls searchers[1] with the module name, if that fails, searchers[2] etc |
11:43:20 | Araq | so you do: local foo = require("foo") |
11:43:28 | Araq | foo.bar() ? |
11:43:43 | q66 | the searcher is supposed to return either a "loader function" - in case of success - the "loader function" when called without arguments returns the return values of the module. |
11:43:54 | q66 | in case of failure, it returns a string with the error message or nil |
11:44:12 | q66 | this means you can implement custom searchers and e.g. "pre-process" modules in a custom manner and stuff. |
11:44:27 | q66 | Araq, yes. |
11:44:51 | Araq | what if I do: |
11:44:56 | Araq | require("foo") |
11:45:05 | Araq | no way to access the module? |
11:45:09 | Araq | added to _G for me? |
11:45:28 | q66 | it loads the module, but doesn't give you any way to access - if you need to retrieve it, you just "require" it once again, and it'll return the values from cache |
11:45:45 | q66 | it used to add from _G but that was declared bad behavior and was deprecated |
11:45:50 | q66 | s/from/to |
11:46:33 | Araq | ah ok |
11:46:52 | q66 | Araq, if you need to re-eval a module, you just clear its entry in package.loaded |
11:46:58 | q66 | e.g. package.loaded["mymod"] = nil |
11:48:41 | q66 | as i said, it's a rather low level non-abstracted system unlike many other languages, and you can pretty much re-implement require(), the searchers and everything else in pure Lua |
11:49:08 | q66 | but it's rather flexible |
11:49:19 | Araq | sure thing, doesn't look bad |
11:49:27 | q66 | e.g. in my compile-to-lua language, i made use of it |
11:49:43 | Araq | except of course that it's all at runtime which sucks |
11:49:56 | q66 | Araq, well, you can't go any other way without types |
11:50:04 | Araq | you can |
11:50:09 | q66 | unless you have "dumb" #include system or something |
11:50:34 | Araq | you can easily use a static module system in a dynamically typed language |
11:50:42 | q66 | Araq, it doesn't actually hurt much at run-time here, as modules are typically loaded in file scope |
11:50:50 | q66 | and you load modules in the start |
11:50:56 | q66 | so any errors will be caught at that point |
11:51:25 | Araq | but that doesn't prevent people from loading stuff at runtime |
11:51:30 | Araq | so you never know for sure |
11:51:47 | q66 | well, sure; it allows you to shoot yourself in the foot |
11:52:02 | q66 | which can be considered a good thing e.g. in my language's case (because i have total control over everything) |
11:52:10 | q66 | and a bad thing in other cases |
11:52:12 | Araq | but that's not what I mean |
11:52:30 | Araq | these things are bad for maintainance |
11:53:02 | q66 | write good, non-convoluted code and maintenance won't be a problem :P |
11:54:05 | q66 | Araq, there are also static analyzers for lua which help with some stuff |
11:54:26 | q66 | e.g. undeclared globals are detected at compile time by these |
11:57:06 | Araq | *shrug* you can always try to patch a misdesign with tooling |
11:57:25 | Araq | bbl |
11:57:31 | q66 | well, static analyzers are useful, not only for "misdesigns" |
12:14:13 | Araq | they are useful but ultimately it should all be in the compiler instead :P |
12:14:41 | Araq | so ... wayland is about to replace X11 now? |
12:18:28 | Anaphaxeton | who knows |
12:18:36 | q66 | no it isn't |
12:18:39 | Anaphaxeton | does it show any advantage? |
12:18:47 | q66 | nope :P |
12:18:49 | Anaphaxeton | ok it may be a cooler design |
12:18:58 | Anaphaxeton | but effectively i dont know |
12:19:12 | Anaphaxeton | and there is a the proprietary drivers problem |
12:22:45 | Anaphaxeton | food bbl |
12:28:05 | q66 | <Araq> they are useful but ultimately it should all be in the compiler instead :P |
12:28:09 | q66 | as a "builtin tool" maybe |
12:28:15 | q66 | though not at regular compiling step |
12:28:24 | q66 | static analysis often takes a considerable amount of time |
12:28:32 | * | XAMPP-8 quit (Ping timeout: 256 seconds) |
12:29:52 | * | XAMPP-8 joined #nimrod |
13:12:48 | Anaphaxeton | and with this i go to bed |
13:12:51 | Anaphaxeton | [lfs@testbed nimrod]$ sh build.sh |
13:12:51 | Anaphaxeton | gcc -w -O3 -fno-strict-aliasing -Ibuild -c build/2_2/system.c -o build/2_2/system.o |
13:12:51 | Anaphaxeton | build/2_2/system.c: In function �systemDatInit�: |
13:12:51 | Anaphaxeton | build/2_2/system.c:4576:23: error: invalid application of �sizeof� to incomplete type �FILE� |
13:15:35 | Anaphaxeton | what is this -Ibuild ? |
13:16:15 | Anaphaxeton | oh it is a dir inside nimrod |
13:16:34 | dom96 | Anaphaxeton: what's your gcc version, platform, architecture etc? |
13:17:08 | Anaphaxeton | gcc 4.7.2 on x86_64 archlinux and musl-gcc |
13:17:14 | * | Anaphaxeton coughs |
13:17:22 | Anaphaxeton | musl-libc i mean |
13:18:07 | dom96 | perhaps musl-libc is the problem |
13:19:47 | Anaphaxeton | i dont think they have a broken FILE |
13:19:55 | Anaphaxeton | it is a working library |
13:20:19 | Anaphaxeton | maybe take a look at your code before me going to the musl people to complain! |
13:20:29 | Anaphaxeton | bbl |
13:20:49 | dom96 | nah, i'm not saying it's a bug with musl-libc |
13:21:15 | Anaphaxeton | broken FILE is a BIG issue!!! |
13:21:40 | Anaphaxeton | cant be.. |
14:00:44 | Araq | there is a workaround |
14:02:06 | Araq | Anaphaxeton: you need to patch the generated C code unfortunately |
14:03:38 | Araq | and then add 'incompletestruct' to system.nim:1763 |
14:10:42 | Araq | and I guess the C standard allows for a incomplete FILE declaration but the standard headers don't do that :-/ |
14:45:20 | * | FreeArtMan joined #nimrod |
14:58:17 | * | FreeArtMan quit (Ping timeout: 240 seconds) |
15:15:43 | * | Trix[a]r_za is now known as Trixar_za |
16:21:36 | * | XAMPP-8 quit (Ping timeout: 256 seconds) |
16:44:21 | * | gradha joined #nimrod |
17:02:01 | * | FreeArtMan joined #nimrod |
17:07:50 | Anaphaxeton | Araq, so it is a musl related problem? |
17:09:45 | Anaphaxeton | stupid language... |
17:09:56 | Anaphaxeton | and they laugh about Ada |
17:17:09 | Anaphaxeton | and now they laugh about sizeof'ing FILE... |
17:35:13 | Anaphaxeton | and i cannot lolcate its definition |
17:36:45 | gradha | looking for something in nimrod? The index is good place to start |
17:37:19 | Anaphaxeton | i am trying to build nomrod with musl libc |
17:37:26 | Anaphaxeton | nimrod* |
17:38:10 | Anaphaxeton | something makes me think i will switch to uclibc |
17:39:54 | gradha | the incomplete sizeof FILE is weird, maybe you should contact musl's authors and ask why are they doing that and how to make it work? |
17:40:06 | Anaphaxeton | want an irc paste? |
17:40:11 | Anaphaxeton | preferably public? |
17:40:27 | Anaphaxeton | i will pick phrases |
17:41:36 | gradha | I'm just a user, so I know nothing of making FILE work to build compilers, I guess you can paste anyway for when Araq is back |
17:41:55 | gradha | or use pastebin/gist and post a link to it |
17:43:28 | Trixar_za | I predict even less luck with uclibc |
17:43:35 | gradha | I guess sizeof'ing FILE is not a big deal when you are using just C, but it is a problem for interfacing with other languages if you need to know the size of structures |
17:43:59 | Trixar_za | They're both stripped down C libraries, so some functionality may be lacking in them |
17:44:25 | Anaphaxeton | i predict a patch of my own to musl's headers |
17:44:30 | Anaphaxeton | a sinfull one! |
18:04:04 | reactormonk | Anaphaxeton, http://ompldr.org/vaDg1cA |
18:04:23 | Anaphaxeton | kwin? |
18:04:32 | reactormonk | errr @ Araq |
18:04:40 | Anaphaxeton | ok |
18:06:23 | gradha | reactormonk: that sounds like nimrod is generating it's package structure into the C code rather than the name of the C structure |
18:07:45 | gradha | wait, you importc "workspace.clientArea"? |
18:08:15 | reactormonk | yep |
18:08:51 | gradha | aren't dots disallowed for types in C? |
18:08:52 | reactormonk | target is js |
18:09:30 | gradha | ah, good luck! <covers in fear> |
18:45:46 | * | FreeArtMan quit (Ping timeout: 244 seconds) |
19:01:22 | * | gradha quit (Quit: Leaving) |
19:01:32 | dom96 | reactormonk: It seems it crashes when trying to generate code for the clientArea proc |
19:01:48 | reactormonk | Just misread 'How can I prepare for getting hit by a bus?' as 'How can Gandalf prepare for getting hit by a bus?' |
19:02:47 | reactormonk | dom96, compiles fine to c |
19:03:08 | dom96 | reactormonk: Yeah, it's a bug with the JS backend. |
19:03:17 | * | dom96 could try to fix it but he's scared of the compiler |
19:03:55 | reactormonk | it won't bite you |
19:05:47 | dom96 | Araq will probably be back before I can fix it, but i'll try anyway :P |
19:17:08 | dom96 | reactormonk: Adding {.nodecl.} to clientArea fixes the crash. |
19:27:22 | * | Trixar_za is now known as Trix[a]r_za |
19:31:40 | reactormonk | huh |
19:31:49 | reactormonk | so I need to add nodecl at all import stuff? |
19:32:26 | dom96 | Dunno. Better wait for Araq and ask him. |
19:42:36 | * | Trix[a]r_za is now known as Trixar_za |
19:56:54 | * | Trixar_za is now known as Trix[a]r_za |
21:01:34 | NimBot | nimrod-code/Aporia c9b79a6 Dominik Picheta [+0 ±4 -0]: Many improvements to the suggest feature. |
21:01:34 | NimBot | nimrod-code/Aporia 56e0312 Dominik Picheta [+0 ±1 -0]: Fixed Page Up and Page Down when suggest is shown. |
21:01:34 | NimBot | nimrod-code/Aporia d6b1706 Dominik Picheta [+0 ±1 -0]: Pressing the "period" key now inserts the selected suggest item. |
21:01:34 | NimBot | nimrod-code/Aporia b5d9018 Dominik Picheta [+0 ±2 -0]: Suggest improvements. |
22:15:20 | Araq | Anaphaxeton: I already told you how to fix it :P |
22:16:05 | Anaphaxeton | it needs a global fixing! |
22:16:22 | Anaphaxeton | or i will do it when the time comes |
22:16:24 | Araq | already done, but I haven't pushed it yet |
22:18:22 | Araq | pong reactormonk |
22:22:06 | NimBot | Araq/Nimrod bfb5e62 Dominik Picheta [+0 ±1 -0]: Added gtk_window_is_active to gtk wrapper. |
22:40:08 | reactormonk | Araq, pong |
22:40:44 | Araq | reactormonk: these JS bugs are really easy to fix |
22:40:47 | Araq | up for the task? |
22:40:54 | reactormonk | Araq, go on |
22:42:02 | Araq | ecmasgen.nim:943 |
22:43:00 | Araq | add 'or {sfImportc, sfInfixCall} * s.flags != {}' to the condition |
22:43:12 | Araq | so that 'importc' suffices and you don't need 'nodecl' as well |
22:43:53 | reactormonk | that code is still kind of a WTF |
22:44:07 | reactormonk | oh wait, I think I understand a bit of it |
22:48:15 | reactormonk | Araq, would it be evil to be able to sacrifice interoptability for speed with JS strings? |
22:48:43 | Araq | yes it would be evil |
22:48:57 | Araq | it would break lots of useful algorithms in strutils |
22:49:42 | Araq | but 'cstring' is mapped to JS's native string type |
22:49:52 | Araq | so you can just use that for speed |
22:50:55 | reactormonk | but that kind of breaks stuff with the stdlib? |
22:51:26 | Araq | not much, I think |
22:51:59 | Araq | but then you need to use $ to get back a nimrod string for strutils and efficiency is bad again :P |
22:52:50 | Araq | but ... do you actually have any speed issues? |
22:53:19 | Araq | the produced code should be quite good apart from string handling |
22:53:59 | dom96 | Araq: You should try suggest in latest Aporia :) |
22:56:03 | Araq | dom96: yeah but I'm working on that marshal bug |
22:56:09 | Araq | it's a challenge :P |
22:56:18 | dom96 | alright :P |
22:58:11 | reactormonk | Araq, can I have enums with spaces in them? |
22:58:34 | Araq | `this works` I think |
22:59:53 | reactormonk | Araq, no hash function for enums? |
23:00:10 | reactormonk | ... just use an array? |
23:00:20 | Araq | maybe not for the JS backend, I dunno |
23:00:33 | Araq | just 'ord' an enum to get a good hash |
23:00:55 | reactormonk | proc hash(x: enum): THash = ord(enum) ? |
23:01:07 | Araq | = ord(x), but yes |
23:01:19 | reactormonk | put that into tables? |
23:01:19 | Araq | however, using an array is in fact the better solution |
23:01:30 | reactormonk | tiling.nim(10, 25) Error: undeclared identifier: 'THash' |
23:01:31 | reactormonk | -.- |
23:01:38 | Araq | import hashes ? :P |
23:02:02 | Araq | and no, don't put it into hashes, it's more likely a design mistake |
23:02:13 | Araq | you should use an array instead |
23:04:25 | reactormonk | which brings me back to https://github.com/Araq/Nimrod/issues/319 |
23:07:17 | Araq | well ... easy to fix :P |
23:07:24 | reactormonk | Araq, hmm, an array triggers a new error |
23:07:38 | reactormonk | tiling.nim(17, 23) Error: internal error: symbol has no generated name: AnonType |
23:08:24 | Araq | used 'ref object' ? |
23:08:37 | Araq | don't use AnonTypes then :P |
23:09:54 | reactormonk | nah, syntax error :-/ |
23:10:53 | Araq | pastebin your code please |
23:11:08 | Araq | and don't make me download a .zip :P |
23:11:13 | reactormonk | no need for that |
23:11:25 | reactormonk | the issue is reproducable with the code in the issue |
23:13:13 | Araq | so you used ["string", 12] as an array? o.O |
23:13:34 | reactormonk | where? |
23:13:51 | Araq | oh sorry |
23:14:04 | Araq | had a different snippet in mind |
23:15:26 | Araq | reactormonk: can you use 'const' instead of 'var'? |
23:15:55 | reactormonk | Araq, yep, gives a longer stacktrace |
23:15:57 | reactormonk | http://sprunge.us/gRdG |
23:16:41 | Araq | ok |
23:16:50 | Araq | show stopper for you? |
23:16:56 | reactormonk | now yep |
23:17:14 | reactormonk | I could use a table as a WA |
23:17:17 | Araq | alright, wait a sec then |
23:37:04 | dom96 | Araq: btw, I think that the proc types that suggest gives should contain the variable names. (and may as well contain the name of the proc in there) |
23:37:59 | Araq | interesting |
23:38:17 | Araq | you like int*int->int syntax elsewhere :P |
23:39:13 | dom96 | There is a difference, this will improve readability and I won't have to write all this stuff :P |
23:44:47 | NimBot | Araq/Nimrod f5a8715 Araq [+0 ±1 -0]: fixes #319 |
23:44:47 | NimBot | Araq/Nimrod 6f06fd8 Araq [+0 ±1 -0]: incompleteStruct pragma for C's FILE |
23:44:47 | NimBot | Araq/Nimrod 68ba6b3 Araq [+0 ±1 -0]: incompleteStruct pragma for C's FILE |
23:44:47 | NimBot | Araq/Nimrod 5f34111 Araq [+0 ±12 -0]: Merge branch 'master' of github.com:Araq/Nimrod |
23:45:10 | Araq | reactormonk: there you go, worked for me at least |
23:47:02 | reactormonk | Araq, booting... |
23:47:20 | Araq | I haven't included the implicit 'nodecl' fix |
23:47:35 | reactormonk | Araq, did a pull request for that |
23:47:44 | reactormonk | and nope, didn't fix it here... let's see if it's something different |
23:48:41 | Araq | well type info for tuples should work now |
23:48:53 | NimBot | Araq/Nimrod e863b87 Simon Hafner [+0 ±1 -0]: no symbol shall be generated for imported procs |
23:48:53 | NimBot | Araq/Nimrod 0f2021b Araq [+0 ±1 -0]: Merge pull request #320 from Tass/master... 3 more lines |
23:49:14 | reactormonk | http://sprunge.us/OSYB |
23:51:03 | Araq | well obviously 'repr' for enums is broken for the JS target then |
23:51:14 | reactormonk | :-/ |
23:51:29 | Araq | use $ instead :P |
23:51:45 | reactormonk | I'm using that |
23:52:00 | Araq | fix the bug then |
23:52:02 | Araq | it's easy |
23:54:33 | reactormonk | of mEnumToStr: genRepr(p, n, r) <- this one? |
23:54:44 | Araq | er ... except that I don't know where 'reprEnum' is supposed to come from for the JS backend |
23:54:48 | Araq | yeah this one |
23:54:58 | Araq | but apparently it's not implemented :-( |
23:55:18 | reactormonk | compiler/semfold.nim: of mEnumToStr: result = newStrNodeT(ordinalValToString(a), n) |
23:55:37 | Araq | well that's not the problem |
23:55:52 | reactormonk | the problem is that you don't store the name of the enum anywhere? |
23:56:17 | Araq | the problem is that apparently I never implemented 'repr' for JS :P |
23:56:26 | Anaphaxeton | good night #nimrod fellas |
23:56:39 | Araq | Anaphaxeton: wait a sec please |
23:57:13 | Araq | Anaphaxeton: does the 'incompleteStruct' fix work? |
23:57:47 | Anaphaxeton | oh i have not a muslt toolchain at the moment |
23:57:52 | Anaphaxeton | i will tell you tomorrow |
23:57:58 | Anaphaxeton | i deleted my work so far |
23:58:15 | Araq | well it's in the repo now but the generated C code that you start with will still contain the error |
23:58:48 | Araq | you can get newer C code from nimbuild however |
23:58:54 | Araq | good night |
23:59:31 | reactormonk | Araq, so go with strings again? |