<<26-01-2013>>

02:20:14*ccssnet quit (Quit: http://atccss.net)
02:21:05reactormonkAraq, I assume you're gone?
02:21:17reactormonkgot this wierdass error
02:21:28*ccssnet joined #nimrod
02:22:31dom96reactormonk: I'm still here
02:23:56reactormonkdom96, yeah, still the JS problem
02:26:18reactormonkoh, it's somewhere entirely different
02:26:43dom96reactormonk: Ask him anyway and he'll get back to you.
02:27:37reactormonk... wtf.
02:27:57dom96?
02:29:05reactormonkcan't reproduce it :-/
02:31:00dom96wish I could help...
02:35:17reactormonkcurl http://sprunge.us/AGAX -O kwin.zip
02:35:25reactormonktry compile tiling.nim
02:35:33reactormonkwarning: tarbomb
02:40:39dom96sec
02:47:47dom96reactormonk: Can't get it to unzip
02:51:59NimBotnimrod-code/Aporia e223b60 Dominik Picheta [+0 ±1 -0]: Added mnemonics to close confirm dialogs.
02:51:59NimBotnimrod-code/Aporia 813ddd2 Dominik Picheta [+0 ±4 -0]: The docs from suggest are now parsed using the compiler's RST parser.
02:52:05dom96Anyway, I have to go to sleep now.
02:52:06dom96Good night
02:54:34*fowl quit (Quit: Leaving)
03:16:55reactormonkdom96, http://ompldr.org/vaDg1cA
04:57:05*codeallergy quit ()
06:20:59*SchalaZeal joined #nimrod
06:22:29*SchalaZeal quit (Client Quit)
08:23:39reactormonkAraq, ^
08:56:57Araqpong reactormonk
09:23:48*Anaphaxeton joined #nimrod
09:23:53Anaphaxetonhello #nimrod
09:24:02Araqwelcome Anaphaxeton
09:25:04Araqyou should ask fowl for help when he's around
09:25:13Anaphaxetonok
09:25:33Anaphaxetonin the meantime i would like to include nimrod to my platform
09:25:43Araqand search github for games and game library wrappers
09:25:53Araqthere are a couple for nimrod around
09:25:53Anaphaxetondo i just need a C ompiler and libc?
09:26:04Araqfor the compiler itself, yes
09:26:12Anaphaxetonwhat else
09:26:26Araqdepends on your needs
09:26:33Anaphaxetonhas nimrod been tested with musl-libc?
09:26:39Araqyou need GTK for Aporia for instance
09:26:44Anaphaxetonok
09:26:49AnaphaxetonGTK2 or 3?
09:26:52Araqwhat's musl-libc? :-)
09:27:03Araqgtk2 or 3 shouldn't matter
09:27:04Anaphaxetongoogle! tiny-performant-standard
09:27:18Araqdunno, I guess not
09:27:30Anaphaxetonok i will do the testing then
09:27:50Araqgreat
09:28:38Araqnimrod runs on the raspberry pi and on smartphones but I guess they all use libc
09:29:08Anaphaxetonif it works with bionic maybe it would work with musl too
09:31:49Anaphaxetonits good nimrod doesnt need bootstrapping
09:31:55Anaphaxetoni ve had enough with this so far
09:32:04Araqer
09:32:11Araqit does need bootstrapping
09:32:22Araqbut everybody does it all the time
09:32:29Araqso it tends to work ;-)
09:37:01Anaphaxetoncould you make a bried description of the process?
09:37:13Anaphaxetoni would like to do it now at the LFS tools phase
09:50:15Anaphaxetonso build.sh does the whole bootstrap by itself?
09:50:19Anaphaxetoni see it is pretty long
09:52:32Anaphaxetoni will not create it yet
09:52:41Anaphaxetoni will wait for the definite system
09:52:47Anaphaxetonit seems to integrate easily
09:58:50Araqapotheon: https://github.com/Araq/Nimrod#compiling
09:58:59Araqsorry, Anaphaxeton: https://github.com/Araq/Nimrod#compiling
09:59:27Anaphaxetonoh my
09:59:32Anaphaxetonnimrod in nimrod
10:00:04Araqyeah but we ship with the generated C code
10:00:25Araqso it works quite nicely imho
10:00:30Araqbbl
10:01:00Anaphaxetoni agree with righting compilers in their own language
10:01:04Anaphaxetonwriting*
10:02:29Anaphaxetonthis means i must install nimrod first on my host
10:03:05Araqdepends, cross compiling is possible too
10:03:22Anaphaxetonhehe
10:03:35Anaphaxetonnimrod exists in arch's open repository
10:04:05AraqI think that package is pretty broken
10:05:39Anaphaxetonwill it not be able to at least create a nimrod?
10:08:02Anaphaxetonshe is biggy
10:09:07Anaphaxetonwhich file is the runtime?
10:12:24Anaphaxetonor do we always link statically?
10:19:04AnaphaxetonAraq, the package built
10:38:25*q66 joined #nimrod
10:52:06AraqAnaphaxeton: yay :-)
10:52:24Araqthe default is a static build, yes
10:52:34Anaphaxeton<Anaphaxeton> i think i got it
10:52:34Anaphaxeton<Anaphaxeton> no need to do a multiphase bootstrap
10:52:35Anaphaxeton<Anaphaxeton> instead when i will have a good toolchain the first thing will be to build nimrod
10:52:48Anaphaxetonwith build.sh
10:53:05Anaphaxetonthen we will see if it like musl libc too
10:54:01Araqyeah
10:54:55Anaphaxetongreat! it doesnt even need libgcc :D
10:58:47Anaphaxetonthat is good for clang
11:03:59Anaphaxetonshould i guess it is easy to make bindings for C APIs?
11:04:05Anaphaxetonand hard for C++?
11:04:22Araqit's a bit quirky for C++
11:04:49Anaphaxetonwill i have to expose a C API first?
11:04:51Araqcheck out c2nim: http://nimrod-code.org/c2nim.html
11:05:32Araqexposing a C API first is the clean way but people also simply hack around with 'importcpp', 'emit' and C++ code generation
11:06:32Anaphaxetonok
11:06:39Anaphaxetonc2nim should be helpful
11:06:46Anaphaxetoni have this problem
11:06:53Anaphaxetonwhich toolkit to use above directfb
11:07:19Anaphaxetonilixi is small and "native" meaning it uses directfb's special abstractions
11:07:24Anaphaxetonbut is C++
11:07:47AnaphaxetonEFL/elementary is C but they abandoned the C backend and it is significantly larger and possibly slower
11:08:05AraqI'd write my own
11:08:11Anaphaxetontoolkit?
11:08:15Araqyeah
11:08:15Anaphaxetonomg
11:08:18Anaphaxetonno
11:08:29Anaphaxetoni would prefer to focus on the final GUI
11:08:50Anaphaxetonwhat integrates the desktop to the underlying system
11:09:03Anaphaxetonmaybe i could steal ideas from ilixi
11:09:19Anaphaxetonand implement them in nimrod
11:09:22Anaphaxetonilixi is small
11:09:24Anaphaxetonlike 600kb
11:09:35Araq600kb is pretty big
11:09:44Anaphaxetonfor a gui toolkit?
11:09:57Anaphaxetonwith only depencency the graphicks backend?
11:10:00Araqhrm I guess not
11:10:14Anaphaxetono kand a coupel more
11:11:00Araqwe're talking about UI in a game context, right?
11:11:18Anaphaxetonno, in a OS context
11:11:58Araqhrm, which layer do you mean: GTK or X11?
11:12:03Araqor something else?
11:12:30Anaphaxetoninstead of X11, directfb, and instead of GTK either EFL/elementary or ilixi
11:12:45AnaphaxetonGUI wars will start soon
11:12:48Anaphaxetonand i wanna join
11:12:53Anaphaxetonnow that wayland is here
11:13:18Anaphaxetonthe problem is what language should i use for the GUI tools?
11:13:26Anaphaxetonlike the partition manager
11:13:29Anaphaxetonthe file manager
11:13:33Anaphaxetonetc etc
11:13:43Anaphaxetoni want something easy to hack yet fast
11:13:47Anaphaxetonthus the luajit
11:14:22Anaphaxetonbut nimrod seems interesting
11:14:38Anaphaxetonwith the not so many volunteers handicap as i told you before
11:18:56q66<Anaphaxeton> EFL/elementary is C but they abandoned the C backend and it is significantly larger and possibly slower
11:19:00q66what do you mean by "abandoned"?
11:19:05q66nothing is abandoned
11:19:19Anaphaxetonoh sorry
11:19:20q66you can use everything from C directly, doing shit through Edje is just another way to do things.
11:19:26Anaphaxetons/C/directfb
11:19:32q66oh
11:19:38q66dunno about directfb
11:19:40Anaphaxetonmakes sense now huh?
11:19:42Anaphaxeton:S
11:20:01q66it seems the directfb backend is still there in Evas
11:20:07Anaphaxetonthey used to support fbdev, directfb, x11, xrender, glx
11:20:14Anaphaxetonthey told me they removed it
11:20:21q66what?
11:20:25q66no, no such thing happened.
11:20:33q66direcfb, x11 etc is still there.
11:20:36Anaphaxetonq66 are you involved with E ?
11:20:40q66yes
11:20:44Anaphaxetoncool!
11:20:50q66http://svn.enlightenment.org/svn/e/trunk/devs/quaker/ 'tis me
11:21:26Anaphaxetongood to have you around!
11:21:57AnaphaxetonE is very nice
11:21:59q66Anaphaxeton, anyway, yes, a few of the backends are gone (cocoa-soft etc)
11:22:06q66but direcfb, x11 etc are still there
11:22:09Anaphaxetoneven its C API is easy to use
11:22:32q66Anaphaxeton, http://svn.enlightenment.org/svn/e/trunk/IN-EFL/evas/src/modules/engines/
11:22:36q66the backends currently there.
11:22:44Anaphaxetonand i like it that the framework doesnt make abstractions over abstractions
11:23:04Anaphaxetonlike using evas objects in elementary
11:23:09Anaphaxetonsounds efficient
11:23:17Anaphaxetoneven though i am not proficient in all this
11:23:24dom96Anaphaxeton: welcome to #nimrod! :)
11:23:34q66yes, that everything is an evas objects makes things easy to use together without having to abstract everything
11:23:34Anaphaxetonthank you dom96 !
11:23:41q66so that libs can be independent and still can be used together
11:24:09Anaphaxetoni find the whole EFL structure very flexible
11:24:14Anaphaxetonlet me check the backends now
11:24:18dom96Araq: The Nimrod package in the AUR works pretty well I think.
11:24:24q66Anaphaxeton, 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:35q66I used it from LuaJIT with C FFI and it works fine :)
11:25:48Anaphaxetonwayland_egl sounds cool too
11:26:03Anaphaxetonbtw directfb supports egl too
11:26:03q66I'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:16Anaphaxetonit is a good idea
11:26:19Anaphaxetonbut it can wait
11:26:56q66Araq, can c2nim handle preprocessor macros?
11:26:59Anaphaxetontbh who would want to build above EFL with Lua?
11:27:26Anaphaxetonlike that guy that made a Lua binding for DirectFB
11:27:34Anaphaxetonor javascript!
11:27:40q66I know a guy who's writing a window manager in Lua
11:27:54Anaphaxetonfor pleasure or to conquer the universe?
11:28:12q66probably the former
11:28:19q66the language has a lot of uses, it's small and flexible
11:28:21Anaphaxetonthen it sounds great
11:28:26Anaphaxetonlua is very nice to work with
11:28:34Anaphaxetonyeah
11:28:55Anaphaxetondo you think the 5.2 update was necessary?
11:29:16q66Lua has a bunch of things I don't like so much, but the pros are larger than the cons
11:29:27q66Anaphaxeton, 5.2 brought several much-needed things into the language
11:29:27Anaphaxetontell me about the cons
11:29:41Anaphaxetondoesnt luajit provide many of them?
11:29:46q66it does
11:30:05q66e.g. goto, __ipairs and __pairs metamethods, fixed __len metamethod, and other things
11:30:53Anaphaxetonlooking at evas-dfb
11:30:55q66one 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:57Anaphaxetonit is rather small
11:31:03Anaphaxetonmaybe too simplistic too?
11:31:14q66in lua 5.1/luajit it's up to like 100k only
11:31:33Anaphaxeton<Anaphaxeton> looking at evas-dfb
11:32:01q66well, the evas engines aren't large
11:32:28q66most of the work is done outside, the engine only needs to hook it with the underlying lib
11:32:48Araqq66: c2nim eats C's preprocessor for lunch :P
11:33:11Araqyou have to differentiate between #def and #define though
11:33:58q66<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:12q66i had some complaints over 5.1, which 5.2 mostly fixed
11:34:16Anaphaxetonq66, i cannot comment on those
11:34:22Anaphaxetoni am doing basic usage of lua
11:34:28Anaphaxetonie just scripting
11:34:47q66i would like if more things were expressions in Lua
11:34:50q66e.g. assignment
11:35:27q66maybe better control over multiple retvals
11:35:43q66oh, and also that assignments into undeclared variables create globals
11:35:46q66that's a bad behavior
11:35:54q66JS has the same issue here
11:36:04q66perl with "use strict;" does it right
11:36:33Araqq66: there is a wiki article about why lua's default on globals is the right thing
11:36:42Araqwas pretty convincing
11:37:02q66Araq, in Lua it's a lesser issue than in other languages, but it's still an issue IMO
11:37:24Anaphaxetondirectfb is creating a newer drawing api. i will C if i can help with evas-dfb in the future
11:37:24q66it's a lesser issue because you can always overload the metatable on _G and implement the strict behavior yourself
11:37:34Araqthe article was quite convincing in that lexical scoping really requires this behaviour
11:37:59AraqI know about the _G metatable but that's a hacky solution imo
11:38:14q66it's a pretty clean solution, but you don't get any syntactic sugar for it
11:38:36Araqhowever, I guess simply requiring globals to be defined via 'local' at the file scope would work too
11:38:45Araqor perhaps a 'global' keyword
11:38:53q66the latter would be better
11:39:02q66"local" at file scope is a different thing
11:39:04q66and useful one too
11:39:20Araqwhat does it mean? 'private'?
11:39:25q66Araq, in Lua the file scope is a function, so it's per-file local
11:39:53Araqah
11:40:08Araqpretty weird but then I dunno how lua's module system works
11:40:10q66you can still get the raw "function" via debug api or something and e.g. eval the file recursively :)
11:40:55q66Araq, 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:13q66then other module calls require("modname") to include the module, and require() returns the return values of the file.
11:41:45q66require() 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:41q66there is a variable package.path that specifies search paths for modules
11:43:00q66and there is also package.searchers table, which has a bunch of module "searchers" - it's an array of functions
11:43:13q66when you require(), it first calls searchers[1] with the module name, if that fails, searchers[2] etc
11:43:20Araqso you do: local foo = require("foo")
11:43:28Araqfoo.bar() ?
11:43:43q66the 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:54q66in case of failure, it returns a string with the error message or nil
11:44:12q66this means you can implement custom searchers and e.g. "pre-process" modules in a custom manner and stuff.
11:44:27q66Araq, yes.
11:44:51Araqwhat if I do:
11:44:56Araqrequire("foo")
11:45:05Araqno way to access the module?
11:45:09Araqadded to _G for me?
11:45:28q66it 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:45q66it used to add from _G but that was declared bad behavior and was deprecated
11:45:50q66s/from/to
11:46:33Araqah ok
11:46:52q66Araq, if you need to re-eval a module, you just clear its entry in package.loaded
11:46:58q66e.g. package.loaded["mymod"] = nil
11:48:41q66as 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:08q66but it's rather flexible
11:49:19Araqsure thing, doesn't look bad
11:49:27q66e.g. in my compile-to-lua language, i made use of it
11:49:43Araqexcept of course that it's all at runtime which sucks
11:49:56q66Araq, well, you can't go any other way without types
11:50:04Araqyou can
11:50:09q66unless you have "dumb" #include system or something
11:50:34Araqyou can easily use a static module system in a dynamically typed language
11:50:42q66Araq, it doesn't actually hurt much at run-time here, as modules are typically loaded in file scope
11:50:50q66and you load modules in the start
11:50:56q66so any errors will be caught at that point
11:51:25Araqbut that doesn't prevent people from loading stuff at runtime
11:51:30Araqso you never know for sure
11:51:47q66well, sure; it allows you to shoot yourself in the foot
11:52:02q66which can be considered a good thing e.g. in my language's case (because i have total control over everything)
11:52:10q66and a bad thing in other cases
11:52:12Araqbut that's not what I mean
11:52:30Araqthese things are bad for maintainance
11:53:02q66write good, non-convoluted code and maintenance won't be a problem :P
11:54:05q66Araq, there are also static analyzers for lua which help with some stuff
11:54:26q66e.g. undeclared globals are detected at compile time by these
11:57:06Araq*shrug* you can always try to patch a misdesign with tooling
11:57:25Araqbbl
11:57:31q66well, static analyzers are useful, not only for "misdesigns"
12:14:13Araqthey are useful but ultimately it should all be in the compiler instead :P
12:14:41Araqso ... wayland is about to replace X11 now?
12:18:28Anaphaxetonwho knows
12:18:36q66no it isn't
12:18:39Anaphaxetondoes it show any advantage?
12:18:47q66nope :P
12:18:49Anaphaxetonok it may be a cooler design
12:18:58Anaphaxetonbut effectively i dont know
12:19:12Anaphaxetonand there is a the proprietary drivers problem
12:22:45Anaphaxetonfood bbl
12:28:05q66<Araq> they are useful but ultimately it should all be in the compiler instead :P
12:28:09q66as a "builtin tool" maybe
12:28:15q66though not at regular compiling step
12:28:24q66static 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:48Anaphaxetonand with this i go to bed
13:12:51Anaphaxeton[lfs@testbed nimrod]$ sh build.sh
13:12:51Anaphaxetongcc -w -O3 -fno-strict-aliasing -Ibuild -c build/2_2/system.c -o build/2_2/system.o
13:12:51Anaphaxetonbuild/2_2/system.c: In function �systemDatInit�:
13:12:51Anaphaxetonbuild/2_2/system.c:4576:23: error: invalid application of �sizeof� to incomplete type �FILE�
13:15:35Anaphaxetonwhat is this -Ibuild ?
13:16:15Anaphaxetonoh it is a dir inside nimrod
13:16:34dom96Anaphaxeton: what's your gcc version, platform, architecture etc?
13:17:08Anaphaxetongcc 4.7.2 on x86_64 archlinux and musl-gcc
13:17:14*Anaphaxeton coughs
13:17:22Anaphaxetonmusl-libc i mean
13:18:07dom96perhaps musl-libc is the problem
13:19:47Anaphaxetoni dont think they have a broken FILE
13:19:55Anaphaxetonit is a working library
13:20:19Anaphaxetonmaybe take a look at your code before me going to the musl people to complain!
13:20:29Anaphaxetonbbl
13:20:49dom96nah, i'm not saying it's a bug with musl-libc
13:21:15Anaphaxetonbroken FILE is a BIG issue!!!
13:21:40Anaphaxetoncant be..
14:00:44Araqthere is a workaround
14:02:06AraqAnaphaxeton: you need to patch the generated C code unfortunately
14:03:38Araqand then add 'incompletestruct' to system.nim:1763
14:10:42Araqand 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:50AnaphaxetonAraq, so it is a musl related problem?
17:09:45Anaphaxetonstupid language...
17:09:56Anaphaxetonand they laugh about Ada
17:17:09Anaphaxetonand now they laugh about sizeof'ing FILE...
17:35:13Anaphaxetonand i cannot lolcate its definition
17:36:45gradhalooking for something in nimrod? The index is good place to start
17:37:19Anaphaxetoni am trying to build nomrod with musl libc
17:37:26Anaphaxetonnimrod*
17:38:10Anaphaxetonsomething makes me think i will switch to uclibc
17:39:54gradhathe 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:06Anaphaxetonwant an irc paste?
17:40:11Anaphaxetonpreferably public?
17:40:27Anaphaxetoni will pick phrases
17:41:36gradhaI'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:55gradhaor use pastebin/gist and post a link to it
17:43:28Trixar_zaI predict even less luck with uclibc
17:43:35gradhaI 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:59Trixar_zaThey're both stripped down C libraries, so some functionality may be lacking in them
17:44:25Anaphaxetoni predict a patch of my own to musl's headers
17:44:30Anaphaxetona sinfull one!
18:04:04reactormonkAnaphaxeton, http://ompldr.org/vaDg1cA
18:04:23Anaphaxetonkwin?
18:04:32reactormonkerrr @ Araq
18:04:40Anaphaxetonok
18:06:23gradhareactormonk: that sounds like nimrod is generating it's package structure into the C code rather than the name of the C structure
18:07:45gradhawait, you importc "workspace.clientArea"?
18:08:15reactormonkyep
18:08:51gradhaaren't dots disallowed for types in C?
18:08:52reactormonktarget is js
18:09:30gradhaah, good luck! <covers in fear>
18:45:46*FreeArtMan quit (Ping timeout: 244 seconds)
19:01:22*gradha quit (Quit: Leaving)
19:01:32dom96reactormonk: It seems it crashes when trying to generate code for the clientArea proc
19:01:48reactormonkJust misread 'How can I prepare for getting hit by a bus?' as 'How can Gandalf prepare for getting hit by a bus?'
19:02:47reactormonkdom96, compiles fine to c
19:03:08dom96reactormonk: 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:55reactormonkit won't bite you
19:05:47dom96Araq will probably be back before I can fix it, but i'll try anyway :P
19:17:08dom96reactormonk: Adding {.nodecl.} to clientArea fixes the crash.
19:27:22*Trixar_za is now known as Trix[a]r_za
19:31:40reactormonkhuh
19:31:49reactormonkso I need to add nodecl at all import stuff?
19:32:26dom96Dunno. 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:34NimBotnimrod-code/Aporia c9b79a6 Dominik Picheta [+0 ±4 -0]: Many improvements to the suggest feature.
21:01:34NimBotnimrod-code/Aporia 56e0312 Dominik Picheta [+0 ±1 -0]: Fixed Page Up and Page Down when suggest is shown.
21:01:34NimBotnimrod-code/Aporia d6b1706 Dominik Picheta [+0 ±1 -0]: Pressing the "period" key now inserts the selected suggest item.
21:01:34NimBotnimrod-code/Aporia b5d9018 Dominik Picheta [+0 ±2 -0]: Suggest improvements.
22:15:20AraqAnaphaxeton: I already told you how to fix it :P
22:16:05Anaphaxetonit needs a global fixing!
22:16:22Anaphaxetonor i will do it when the time comes
22:16:24Araqalready done, but I haven't pushed it yet
22:18:22Araqpong reactormonk
22:22:06NimBotAraq/Nimrod bfb5e62 Dominik Picheta [+0 ±1 -0]: Added gtk_window_is_active to gtk wrapper.
22:40:08reactormonkAraq, pong
22:40:44Araqreactormonk: these JS bugs are really easy to fix
22:40:47Araqup for the task?
22:40:54reactormonkAraq, go on
22:42:02Araqecmasgen.nim:943
22:43:00Araqadd 'or {sfImportc, sfInfixCall} * s.flags != {}' to the condition
22:43:12Araqso that 'importc' suffices and you don't need 'nodecl' as well
22:43:53reactormonkthat code is still kind of a WTF
22:44:07reactormonkoh wait, I think I understand a bit of it
22:48:15reactormonkAraq, would it be evil to be able to sacrifice interoptability for speed with JS strings?
22:48:43Araqyes it would be evil
22:48:57Araqit would break lots of useful algorithms in strutils
22:49:42Araqbut 'cstring' is mapped to JS's native string type
22:49:52Araqso you can just use that for speed
22:50:55reactormonkbut that kind of breaks stuff with the stdlib?
22:51:26Araqnot much, I think
22:51:59Araqbut then you need to use $ to get back a nimrod string for strutils and efficiency is bad again :P
22:52:50Araqbut ... do you actually have any speed issues?
22:53:19Araqthe produced code should be quite good apart from string handling
22:53:59dom96Araq: You should try suggest in latest Aporia :)
22:56:03Araqdom96: yeah but I'm working on that marshal bug
22:56:09Araqit's a challenge :P
22:56:18dom96alright :P
22:58:11reactormonkAraq, can I have enums with spaces in them?
22:58:34Araq`this works` I think
22:59:53reactormonkAraq, no hash function for enums?
23:00:10reactormonk... just use an array?
23:00:20Araqmaybe not for the JS backend, I dunno
23:00:33Araqjust 'ord' an enum to get a good hash
23:00:55reactormonkproc hash(x: enum): THash = ord(enum) ?
23:01:07Araq= ord(x), but yes
23:01:19reactormonkput that into tables?
23:01:19Araqhowever, using an array is in fact the better solution
23:01:30reactormonktiling.nim(10, 25) Error: undeclared identifier: 'THash'
23:01:31reactormonk-.-
23:01:38Araqimport hashes ? :P
23:02:02Araqand no, don't put it into hashes, it's more likely a design mistake
23:02:13Araqyou should use an array instead
23:04:25reactormonkwhich brings me back to https://github.com/Araq/Nimrod/issues/319
23:07:17Araqwell ... easy to fix :P
23:07:24reactormonkAraq, hmm, an array triggers a new error
23:07:38reactormonktiling.nim(17, 23) Error: internal error: symbol has no generated name: AnonType
23:08:24Araqused 'ref object' ?
23:08:37Araqdon't use AnonTypes then :P
23:09:54reactormonknah, syntax error :-/
23:10:53Araqpastebin your code please
23:11:08Araqand don't make me download a .zip :P
23:11:13reactormonkno need for that
23:11:25reactormonkthe issue is reproducable with the code in the issue
23:13:13Araqso you used ["string", 12] as an array? o.O
23:13:34reactormonkwhere?
23:13:51Araqoh sorry
23:14:04Araqhad a different snippet in mind
23:15:26Araqreactormonk: can you use 'const' instead of 'var'?
23:15:55reactormonkAraq, yep, gives a longer stacktrace
23:15:57reactormonk http://sprunge.us/gRdG
23:16:41Araqok
23:16:50Araqshow stopper for you?
23:16:56reactormonknow yep
23:17:14reactormonkI could use a table as a WA
23:17:17Araqalright, wait a sec then
23:37:04dom96Araq: 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:59Araqinteresting
23:38:17Araqyou like int*int->int syntax elsewhere :P
23:39:13dom96There is a difference, this will improve readability and I won't have to write all this stuff :P
23:44:47NimBotAraq/Nimrod f5a8715 Araq [+0 ±1 -0]: fixes #319
23:44:47NimBotAraq/Nimrod 6f06fd8 Araq [+0 ±1 -0]: incompleteStruct pragma for C's FILE
23:44:47NimBotAraq/Nimrod 68ba6b3 Araq [+0 ±1 -0]: incompleteStruct pragma for C's FILE
23:44:47NimBotAraq/Nimrod 5f34111 Araq [+0 ±12 -0]: Merge branch 'master' of github.com:Araq/Nimrod
23:45:10Araqreactormonk: there you go, worked for me at least
23:47:02reactormonkAraq, booting...
23:47:20AraqI haven't included the implicit 'nodecl' fix
23:47:35reactormonkAraq, did a pull request for that
23:47:44reactormonkand nope, didn't fix it here... let's see if it's something different
23:48:41Araqwell type info for tuples should work now
23:48:53NimBotAraq/Nimrod e863b87 Simon Hafner [+0 ±1 -0]: no symbol shall be generated for imported procs
23:48:53NimBotAraq/Nimrod 0f2021b Araq [+0 ±1 -0]: Merge pull request #320 from Tass/master... 3 more lines
23:49:14reactormonk http://sprunge.us/OSYB
23:51:03Araqwell obviously 'repr' for enums is broken for the JS target then
23:51:14reactormonk:-/
23:51:29Araquse $ instead :P
23:51:45reactormonkI'm using that
23:52:00Araqfix the bug then
23:52:02Araqit's easy
23:54:33reactormonkof mEnumToStr: genRepr(p, n, r) <- this one?
23:54:44Araqer ... except that I don't know where 'reprEnum' is supposed to come from for the JS backend
23:54:48Araqyeah this one
23:54:58Araqbut apparently it's not implemented :-(
23:55:18reactormonkcompiler/semfold.nim: of mEnumToStr: result = newStrNodeT(ordinalValToString(a), n)
23:55:37Araqwell that's not the problem
23:55:52reactormonkthe problem is that you don't store the name of the enum anywhere?
23:56:17Araqthe problem is that apparently I never implemented 'repr' for JS :P
23:56:26Anaphaxetongood night #nimrod fellas
23:56:39AraqAnaphaxeton: wait a sec please
23:57:13AraqAnaphaxeton: does the 'incompleteStruct' fix work?
23:57:47Anaphaxetonoh i have not a muslt toolchain at the moment
23:57:52Anaphaxetoni will tell you tomorrow
23:57:58Anaphaxetoni deleted my work so far
23:58:15Araqwell it's in the repo now but the generated C code that you start with will still contain the error
23:58:48Araqyou can get newer C code from nimbuild however
23:58:54Araqgood night
23:59:31reactormonkAraq, so go with strings again?