<<15-08-2012>>

01:16:03*q66 quit (Quit: Quit)
05:14:00*reactormonk joined #nimrod
07:02:32*reactormonk quit (Ping timeout: 265 seconds)
08:37:49*fowl quit (Quit: Leaving)
09:32:04*Araq_ joined #nimrod
09:32:49*q66 joined #nimrod
10:01:43*zahary joined #nimrod
11:43:59*Araq_ quit (Quit: ChatZilla 0.9.88.2 [Firefox 14.0.1/20120713134347])
12:39:09*Araq_ joined #nimrod
12:53:27*|apriori| joined #nimrod
12:53:42*Araq_ quit (Quit: ChatZilla 0.9.88.2 [Firefox 14.0.1/20120713134347])
13:10:11*Araq_ joined #nimrod
13:12:14Araq_hi |apriori|
13:12:22Araq_so how's progress on BSD?
13:13:44|apriori|Araq_: mediocre
13:14:03|apriori|got no clue yet, why the linker gcc command keeps failing
13:14:12|apriori|and manual execution of the very same command works
13:14:57Araq_you should compile with --useFork
13:15:02Araq_er
13:15:05Araq_-d:useFork
13:16:19|apriori|Araq_: no change, when using koch boot -f -d:release -d:useFork
13:18:02|apriori|as said.. I assume its something build environment related
13:18:25Araq_ok try --parallelBuild:1 instead
13:18:45Araq_well I'm not yet out of ideas ;-)
13:18:55|apriori|results in a hang
13:20:00|apriori|http://pastebin.com/aXVZUKp2
13:20:02Araq_yay ...
13:20:35Araq_I think it's not hanging
13:20:41Araq_but just slow ;-)
13:20:45|apriori|yup.. butt slow
13:21:03Araq_and doesn't output GCC's progress
13:21:13|apriori|what the hell does it actually do?
13:21:16|apriori|building twice?
13:21:24|apriori|it shows some output like "iteration 1"... "iteration 2"
13:21:39|apriori|funny enough.. the link command succeeded in iteration 1
13:22:25|apriori|http://pastebin.com/Gq8RpsFt
13:26:33|apriori|there's got to be a race condition somewhere
13:27:17|apriori|when installing the resulting nimrod compiler and using it build a sample app, it failed with: http://pastebin.com/iDJzrRwN
13:27:21Araq_it builds 3 times
13:27:24|apriori|another invocation of the compiler worked, though
13:28:24Araq_well add --parallelBuild:1 to your config
13:28:52Araq_it's a bug that that causes output captchuring to not work ...
13:29:40Araq_I'll take a look at this code again but for now I consider the issue solved :P
13:29:50|apriori|:P
13:29:54|apriori|ok
13:33:12|apriori|Araq_: and btw, os.getAppFileName() works properly
13:33:34|apriori|but I guess, you know that, since you said, the compiler depends on it anyway
13:34:44Araq_well I know it worked with my freeBSD version ;-)
13:34:52|apriori|ok ;)
13:34:52Araq_and I know it doesn't work on NetBSD
13:34:57|apriori|interesting
13:37:52Araq_traditional UNIX considers it evil if a process knows its full path ...
13:38:16|apriori|that's somewhat paranoid
13:39:13Araq_*shrug* traditional unix is absurd anyway
13:45:47*Araq_ quit (Read error: Connection timed out)
13:47:45*Araq_ joined #nimrod
13:51:13|apriori|what is wrong about this code?: http://pastebin.com/CCgQLu9n error: http://pastebin.com/Amp4fyGi
13:54:24Araq_sorry connection problems
13:54:30Araq_and I have to go anyway
13:54:34|apriori|ok, np
13:54:41Araq_use the 'pure' or 'final' pragma for your objects
13:55:01Araq_I think it triggers a known codegen bug ;-)
13:55:07|apriori|okay
13:55:09|apriori|gonna try
13:55:18Araq_that I should have fixed months ago :-/
13:55:31Araq_but there are always better things to do ...
13:56:19|apriori|yeah..
13:56:26|apriori|especially with this whether right now ;)
13:56:36|apriori|ohm, weather
13:57:09Araq_bye
13:57:24*Araq_ quit (Quit: ChatZilla 0.9.88.2 [Firefox 14.0.1/20120713134347])
14:19:29*zahary quit (Quit: Leaving.)
14:20:00*zahary joined #nimrod
14:46:30*Trix[a]r_za is now known as Trixar_za
14:49:45*reactormonk joined #nimrod
15:42:56*shevy quit (Read error: Operation timed out)
15:58:39*shevy joined #nimrod
16:54:38*Trixar_za is now known as Trix[a]r_za
17:09:13|apriori|Araq: are you back?
17:09:35Araq|apriori|: yes
17:09:56|apriori|well, there must really be either: 1) a codegen issue 2) some subtle error in my code
17:10:19|apriori|because when debugging, I end up calling storeAux with a ptr TNimNode of nil
17:10:30|apriori|which results in a crash when it gets derefenced
17:14:00|apriori|http://pastebin.com/GAeTffKV
17:16:07|apriori|changing to a ref type in the thread proc doesn't quite change anything
17:17:13*XAMPP joined #nimrod
17:17:13*XAMPP quit (Changing host)
17:17:13*XAMPP joined #nimrod
17:21:51Araqwell I think it's a codegen issue
17:22:04Araqcreate a bug report please
17:22:22Araqas a workaround you could try a tuple
17:34:42|apriori|okay
17:35:39|apriori|same error with a tuple
17:35:50Araqnow that's strange
17:36:01Araqstill on BSD?
17:36:05|apriori|yes
17:37:05Araqedit system/alloc.nim:20 please
17:37:27Araqand set it to true on bsd
17:37:50|apriori|same error
17:38:07Araqugh
17:38:24Araqyou use --tlsEmulation:on right?
17:38:33|apriori|wait a sec
17:38:40|apriori|you said that is set implictly
17:38:41|apriori|checking
17:39:14|apriori|according to cfg, it should be used
17:39:19Araqok
17:52:32*ekselkiu joined #nimrod
17:53:10ekselkiuWhat does "non-tracing garbage collector" mean on http://nimrod-code.org/?
17:55:23ekselkiuAccording to the docs, Nimrod uses "deferrent reference counting with cycle detection", and the cycle detection. What's "non-tracing" about the cycle detection part?
17:57:49Araqalright alright it does traces cycles ;-)
17:57:56Araqbut only the subgraphs that changed
17:58:32Araqand you have lots of control over it
17:58:38Araqbut I have to go, see you later
17:58:46ekselkiuOK, thanks.
18:06:44dom96|apriori|: Out of curiosity, why are you using BSD? What kind of advantages does it offer over say Linux?
18:07:53|apriori|well, currently for me a very specific one: the nvidia drivers work here, whereas they don't on linux
18:07:58ekselkiuI'd probably be using BSD on the desktop right now if it didn't require a primary partition all to itself.
18:08:21|apriori|I got a somewhat strange laptop here... and nvidia seems uncapable of resolving the issue on linux for over a year now
18:08:52|apriori|that forced me to an ancient version of the driver and Xorg... a workaround that no longer works, because now applications/windowsmanagers get dependant on changes in later Xorg versions
18:09:25ekselkiuWhat changes?
18:09:41|apriori|as a interesting side effect.. a project I develop at university is running a hell lot faster on bsd than on linux - for whatever reason
18:09:43ekselkiuOr at least, changes in which subsystems?
18:09:49|apriori|I dont quite now
18:10:00|apriori|I just run into very early segfaults I can't really debug
18:10:10ekselkiuO_o
18:10:11|apriori|they reside in libGL, after passing through Xorg
18:10:42|apriori|the nvidia drivers replace major parts of Xorg with their own... so that is expected
18:11:14|apriori|and since that libGL is closed source, I got no clue where the issue is
18:11:35|apriori|I could just disassemble it.. something I don't quite wanna do
18:11:45ekselkiuUnderstandably ^_^
18:11:51|apriori|dom96: about other advantages:
18:12:08|apriori|bsd is more conservative and doesn't join usual hype trains early on
18:13:29dom96I certainly never heard anyone say that BSD works for them but Linux doesn't. Interesting.
18:15:45dom96Last time I tried setting up FreeBSD(IIRC) it seemed quite complicated, and well I failed even to set up the network.
18:16:13|apriori|dom96: I use a slightly modified variant, called PC-BSD
18:16:20|apriori|under the "hood" its plain FreeBSD
18:16:31|apriori|but, yeah, the installer even there is a pain
18:16:39|apriori|it required quite some manual intervention
18:17:47dom96I wonder if anyone ever tried to create something like Arch Linux but for BSD
18:17:50|apriori|dom96: and I don't quite know what exactly is causing the issue...
18:18:05ekselkiuI just got rather annoyed that FreeBSD wouldn't install in a logical partition.
18:18:10|apriori|the fun part is just, that the driver "thinks" the card gets removed from the bus when running
18:18:28|apriori|dom96: you mean rolling release?
18:18:40|apriori|I very much doubt that.. it's quite contrary to the philosophy
18:18:58|apriori|you can stay bleeding edge in FreeBSD.. but then you have to build things using ports yourself
18:19:21dom96|apriori|: Sure. But also the awesome arch wiki, the easy (well... for programmers I suppose) installation ... and pacman.
18:19:36|apriori|the "easy" installation is history..
18:19:43|apriori|if you took a look at the latest changes
18:19:57|apriori|the installation now is more gentoo-like
18:20:27|apriori|and, yeah, I like arch a lot though (with the exception of introducing systemd)
18:21:25dom96Are you talking about the removal of AIF?
18:21:44|apriori|of what?
18:22:00dom96The Arch Installation Framework.
18:22:03|apriori|yup
18:22:18|apriori|now its not really hard either... but definetly harder than before
18:22:33dom96I see. I haven't had a chance to see how it differs.
18:22:35|apriori|but you know your way around, if you ever used a livecd to mount your existing installation
18:23:00|apriori|and.. I completely hate grub 2
18:23:21|apriori|and its completely bloated cfg files, it does need now for even simple use cases
18:23:29|apriori|and that all, because one wanted to remove stage_1_5
18:25:40dom96Yeah, many people stopped using grub once Arch forced grub2 on them.
18:25:58dom96I personally didn't have any problems with it.
18:26:30|apriori|well, with grub1 I could write the complete menu file without having a look at any manual...
18:26:36|apriori|that is simply impossible with grub2
18:27:03|apriori|in which you pretty much need to do everything by hand.. load file system modules etc.
18:27:31dom96Isn't there a tool which automatically detects the OS' you have installed and generates everything for you?
18:28:33dom96I guess it doesn't help you if you need more control though
18:29:25|apriori|os prober?
18:29:28|apriori|didn't quite work for me
18:31:06dom96interesting. In PC-BSD all apps are installed into /programs
18:33:01|apriori|dom96: not quite true
18:33:17|apriori|PC-BSD does have 2 systems
18:33:32|apriori|the "appcafe" (or hell, I hate the word "app" so much, but nvm)
18:33:41|apriori|which installs using the pbi system into /usr/pbi
18:33:54|apriori|and ports + pkg, which use the usual FreeBSD locations
18:36:14dom96oh
18:40:42shevyhmmm wait
18:40:45shevythe /usr/pbi
18:40:50shevywhat is that equivalent to? /usr/local ?
18:40:56|apriori|nope
18:41:14shevyok asked differently, what is in /usr/pbi ? for instance?
18:41:15|apriori|in /usr/pbi each application is installed under its own directory
18:41:21shevyah ok so
18:41:28shevygcc would be in /usr/pbi/gcc ?
18:42:44|apriori|http://pastie.org/4495156
18:43:19shevychromium-amd64 claws-mail-amd64 konversation-amd64 yakuake-amd64
18:43:20shevyhmm ok
18:43:22shevyso it is
18:43:30shevyname_of_package-architecture
18:43:38shevybut only 4 directories there hmmm
18:43:48|apriori|because the rest is installed using ports + pkg
18:44:21*Amrykid_ joined #nimrod
18:44:58*Amrykid quit (Disconnected by services)
18:45:02*Amrykid_ is now known as Amrykid
18:45:10*Amrykid quit (Changing host)
18:45:11*Amrykid joined #nimrod
18:45:31|apriori|also each pbi has some file called .auto-external-links
18:45:40|apriori|which names files to be symlinked into the usual unix file base
18:45:45|apriori|or dir base
18:47:22|apriori|to me, it seems to create an overlay
18:48:59shevyaha
18:49:53shevyyeah
18:49:59shevyquite a lot how gobolinux handles it
18:50:12shevycompile into i.e. /Programs/Htop/1.0.1 then symlink this into /System/Links
18:50:25shevywhen other version, like /Programs/Htop/1.0.2, resymlink
18:50:58|apriori|yeah, although I don't quite see those symlinks
18:52:27|apriori|ok, now things get really weird
18:52:38|apriori|seeing a bunch of different files in e.g. /usr/pbi/konversation/bin
18:52:44|apriori|seems more like a hardlink to somewhere else
18:54:32|apriori|oh, oh...
18:54:36|apriori|"The PBI format tries to correct this underlying flaw. Rather than making every application a part of the base system, PBIs are self-contained, including their own dependent library tree and related data. As a result, when you install a PBI there are no dependency issues to resolve, and applications can be added or removed freely, without fear of causing breakage to the desktop or any other installed software."
18:56:03ekselkiuNever mind. I didn't want to store anything other than redundant libraries on my hard disk anyway.
18:56:34|apriori|Filesystem Size Used Avail Capacity Mounted on
18:56:35|apriori|/dev/label/rootfs0 24G 14G 7.4G 67% /
18:56:37|apriori|O_o
18:57:29ekselkiuWhat distro is this? GobbleLinux? :D
18:57:37|apriori|PC-BSD
18:57:39ekselkiuOh.
18:57:43|apriori|guess, I gonne get rid of PBI
18:57:50shevygobolinux does not store dependencies in the same directory
18:58:02shevyevery program, without exception, will always reside in /Programs/NAME_HERE/VERSION_HERE
18:58:13shevyincluding Glibc!
18:58:21shevybut I never managed to upgrade glibc on my own :P
18:58:45|apriori|well, that actually makes more sense than the extreme waste of space due to having hundreds of times the same lib installed
18:58:52shevyhmm
18:59:02shevyI think the idea might have been to use .pbi and distribute them freely, like on USB sticks and so on
18:59:20|apriori|I don't quite now
18:59:41|apriori|one should rather have a multi-version control of all libs centralized in the system
18:59:54|apriori|instead of having each application ship their own junk with them
19:00:52|apriori|and that "just delete the application to get rid of it all" can be solved with simple reference counting
19:01:16ekselkiuOr dedupe at the file-system level.
19:01:34|apriori|yeah.. another approach
19:02:16|apriori|I actually also don't quite get it...
19:02:28|apriori|if I see it correctly, that auto links file tries to do exactly that
19:02:43|apriori|guess I need to ask the filesystem, whether its not simple fooling me
19:02:48|apriori|*simply
19:02:54shevyhehe
19:19:43Araqarg, now it's even 2 of you ...
19:19:52Araqwhy can't you just let BSD die? :P
19:21:40|apriori|Araq: muhahaha ;)
19:21:56|apriori|shevy: well, I was fooled..
19:22:07|apriori|pbi shares files between packages using hardlinks
19:23:21Araqwhy oh why do I have to support 4 OSes for my 3 users ...
19:23:41shevybecause they may together recruit ONE MORE USER in 3 months
19:23:45shevyusing Haiku
19:23:46shevyHAHAHA
19:24:39dom96Araq: Because I want my apps to run on EVERYTHING
19:25:03|apriori|dom96: I would second that...
19:25:07|apriori|though its definetly impossible
19:25:24|apriori|Araq: and who dares to run a mac, here? :P
19:25:34dom96yeah, well I am not being serious. However, it would be nice to support as much as we can.
19:25:58AraqI think zahary and q66 both do use a mac ...
19:26:04dom96That said I am happy as long as the "big 3" are supported.
19:26:14shevylinux, linux and
19:26:15shevylinux
19:26:36dom96shevy: :)
19:26:44q66linsux, winblows and mac osux
19:26:54shevyhaha
19:26:59dom96Araq: ddl_smurf still runs his builder, count him in too ;)
19:27:07q66and FreeLSD
19:27:13|apriori|Araq: and, correct me if I'm wrong.. but my bug isn't really FreeBSD-dependant, is it?
19:27:26Araqhe only runs it when I improve idetools support ...
19:27:42Araqwhich means he's happy with everything else already :P
19:27:52Araq|apriori|: let me check ...
19:27:56dom96Araq: Really? The builder fails though
19:28:10dom96Sometimes I wonder if he's even aware it's running
19:28:13q66|apriori| and yes, i'm running OS X right now, u butthurt bro?
19:28:26dom96Maybe he made it autostart and sometimes he switches on his Mac and doesn't even notice :P
19:28:28|apriori|q66: butthurt bro?
19:28:37q66i'm also running FreeBSD and arch/debian
19:29:13|apriori|q66: question was, what you're actually "using".. not developing for
19:29:39q66right now i'm using OS X on this computer and laptop
19:29:40dom96We need to support Macs unfortunately. Too many of them on the desks of JPL employees during the Curiosity landing.
19:29:40|apriori|and.. frankly.. I tend to have a bad impression about people saying mac os is actually useful (besides some niches)
19:29:53q66it's not a bad OS
19:30:23Araqit is :P
19:30:26|apriori|the os base is quite solid.. the framework thingy (the variant of libs)/dynlib is brain damaged
19:30:33Araqit even lies about its bitwidth
19:30:43q66frameworks kinda suck, yeah
19:30:53Araquname -a ... wtf?
19:31:02q66what about uname -a
19:31:08Araqit lies
19:31:15q66huh how
19:31:21q66Darwin q66.local 12.0.0 Darwin Kernel Version 12.0.0: Sun Jun 24 23:00:16 PDT 2012; root:xnu-2050.7.9~1/RELEASE_X86_64 x86_64
19:31:24q66seems quite correct to me
19:31:37Araqoh they finally fixed that?
19:31:46|apriori|q66: and I hate apples philosophy so much...
19:31:55q66|apriori|, which is?
19:32:03Araqtry uname -m please
19:32:07*ekselkiu quit (Quit: My friend has a low IQ and anorexia, but I stuck with him through thick and thin.)
19:32:09q66i like how OS X just works, linux could learn from that
19:32:19|apriori|like maintaining only "big" updates.. including graphics drivers. a friend of mine has to buy a complete upgrade of his os in order to get up to date drivers supporting newer opengl versions
19:32:21q66Araq, x86_64
19:32:30Araqalright so they finally fixed it
19:32:36|apriori|q66: totally agreed on that.. on the "just works" side, linux definetly sucks
19:33:43q66|apriori|, also, only "big" updates? all the minor OS upgrades as well as security updates etc are free
19:33:48dom96If Linux had a big company like Apple behind I'm sure it would be much better.
19:33:48q66you buy only new version of the OS
19:33:54dom96It might even "just work"
19:34:03|apriori|q66: might be.. but in that case, that didnt include his damn graphics drivers.
19:34:14dom96And be dumb-proof like Windows, which is enough for most people.
19:34:18|apriori|and that is kinda ridiculous
19:34:23q66|apriori|, tbh, opengl on OS X sucks, yes
19:34:34q66it doesn't support GL3.x compatibility profile and it doesn't support GL4.x
19:34:38dom96*behind it
19:34:48|apriori|q66: yup, had much fun with that
19:34:59|apriori|although..the most fun definetly was to get brain damaged dynlibs working
19:35:12|apriori|mac os doesn't have a proper rpath (neither has windows)
19:35:25q66i don't have a problem with dylibs, i have a problem with lack of --export-dynamic in ld :p
19:35:46|apriori|so one had to manually alter the libs (don't recall the tools name) @executable_path or something like that..
19:35:47q66the symbols are exported by default, but when you strip the binary you lose them
19:35:49q66that's just silly
19:35:58|apriori|and that had to include even absolute paths.. silly beyond imagination
19:36:37AraqIMHO the lack of proper thread local storage support is a show stopper
19:36:37q66imo the OSes all have pros and cons; i'm using them pretty much all
19:36:43|apriori|yeah, I guessI ran into very weird special cases
19:36:58|apriori|q66: sure
19:37:09|apriori|but what I definetly hate most about apple is: hype
19:37:10q66as well as develop for them all
19:37:23q66|apriori|, what I hate about apple is fanboys
19:37:26Araqthe posix api is a very poor workaround for __thread
19:37:27q66their OS and hw is solid
19:37:40q66and i hate iOS toys
19:37:46|apriori|q66: same here.. the university project I was working on ran on win, linux (32 and 64), freebsd (32, 64) and mac
19:37:53|apriori|although not really required..
19:38:24|apriori|q66: I in general hate fanboys :P
19:38:25q66my game engine runs on windows, linux, freebsd, mac, solaris, possibly some others, on 32 and 64 bits for all.
19:38:44|apriori|ah.. now I remember..
19:38:48|apriori|you are that game engine dev of #D
19:38:55q66i don't really use D though
19:39:08q66anymore
19:39:15|apriori|pretty much same here...
19:39:28|apriori|I mean.. (kudos to you, Araq)..
19:39:34|apriori|compared to nimrod its developing slowly
19:39:42Araqthanks
19:39:44Araqbut lol
19:39:51q66D is immature involving bad design decisions some of which they consider good
19:40:03Araqnimrod's development is slow too
19:40:03|apriori|Araq: indeed, LOL... considering the man power
19:40:05q66and they can't prioritize
19:40:16|apriori|q66: I so agree here
19:40:27|apriori|e.g. not getting the base right.. like the GC
19:40:29q66the best way to get a feature in D is to rant about it on reddit; you can be pretty sure it'll be in in a week. :P
19:40:33|apriori|and the flaws with "shared"
19:41:01Araqthe Ada guys had a good description of it though it was a quote from reddit I think:
19:41:13q66|apriori|, those aren't even the biggest problems of D, but yes, they are annoying
19:41:16Araqthis is a feature list, not a design :P
19:41:23|apriori|Araq: const correctness?
19:41:29q66IMO their perception of "safety" is completely wrong
19:41:32|apriori|oh well, q66, I meant
19:41:35q66they take it as a "feature"
19:41:51|apriori|yeah, maybe...
19:42:09Araqthey confuse "safety" with "wishful thinking" ...
19:42:17q66that results in broken "safe" code when it has to interact with regular unsafe code
19:42:26|apriori|Araq: apropos safety..
19:42:41q66the language should be safe by default with explicit unsafe, because interacting with safe code from unsafe code is fine, the other way it becomes difficult
19:42:42|apriori|one thing I _really_ liked in D was the unittest() block statement
19:42:47|apriori|although its limited...
19:43:12Araq|apriori|: check the unittest module
19:43:20q66also their perception of safety is dangerously close to that of C++
19:43:54|apriori|q66: you still didn't explain "butthurt bro"
19:43:59q66generally, it tries to take C++ features and improve over them, but when the originals are broken, nothing can be improved
19:44:00|apriori|q66: correct
19:44:11q66wm4 called it "polishing a turd" and he was right
19:44:52q66|apriori|, as for that, i was basically poking at you for the "<|apriori|> Araq: and who dares to run a mac, here? :P"
19:45:08|apriori|Araq: am I blind or isn't it documented anywhere?
19:45:22|apriori|q66: okay ;)
19:45:39q66what's good about D is the community, it's generally helpful and nice without being assholes like those around C++
19:45:51|apriori|agreeing on that, too
19:46:02|apriori|I totally hate the arrogance in #c++
19:46:12q66it's not only the arrogance
19:46:34q66they're also pedantic
19:46:53Araq|apriori|: true it's not documented :P
19:47:08q66and they don't seem to live in real world with their UB rants
19:47:28q66also criticism results in instant ban
19:48:00|apriori|q66: no rare known abbrevs plz :P
19:48:03|apriori|UB?
19:48:06Araqfunny thing is: you can't program in it without triggering some kind of UB
19:48:08q66undefined behavior, |apriori|
19:48:15|apriori|ah, k
19:48:24|apriori|Araq: right
19:48:24q66C++ is full of them, so is C
19:48:35q66they still seem to have some kind of hate against UB, while they love C++ to death
19:48:40|apriori|actually... you just add barriers around UB
19:48:42q66even through all of its retarded corner cases
19:49:07|apriori|yeah.. but progressing with language rant
19:49:20q66there's a nice C++ channel around on efnet
19:49:22|apriori|I don't like javas overstatement of "OOP over everything" either
19:49:33q66people there generally aren't as retarded as on freenode and quakenet
19:49:44q66but it has exceptions as well
19:50:14|apriori|well, expections have their issues as well
19:50:24|apriori|like.. breaking problem locality etc.
19:50:32q66i wasn't talking about exceptions :p
19:50:39|apriori|oh, well
19:50:44|apriori|I'm slow today :)
19:50:45q66i was talking about that efnet's C++ chan is generally nice with some exceptions.
19:51:12Araq|apriori|: indeed the bug is not related to BSD ...
19:51:17q66that doesn't mean I like exception handling, though; I think the cost of them is generally too big considering the little benefit they provide
19:52:21|apriori|the problem is.. well, you might get free error state traversal, but you will also get hard return value/error state disconnections
19:52:43|apriori|I'd even prefer that to be in the type system, in form of an Either/MayBe type
19:52:45q66<|apriori|> I don't like javas overstatement of "OOP over everything" either
19:52:46q66as for this
19:52:53q66there are OO systems that are fine
19:52:56q66java's is not one of them :P
19:53:18q66mainly using OO as sole paradigm is silly; it only works in combination with something or in specific case
19:53:29|apriori|well, I get into touch with java enterprise at work.. I never spent so much time not solving my actual problem.
19:53:33q66and the class+interface+instance+factory-based system of Java is crap
19:54:09q66I'm a fan of simple prototype systems as shown by Io, Lua or Self
19:54:17|apriori|well, I once really liked OOP... but changed my mind, when I realized, how often it results in absolutely bloated hierarchies with completely unneeded expressional power
19:54:57q66|apriori|, you were doing OOP wrong
19:54:58q66:p
19:55:07|apriori|maybe
19:55:25q66it's not about using it everywhere, it's about using it where feasible
19:55:37|apriori|try that with java :P
19:55:43q66i.e. it makes total sense with a widget toolkit
19:56:00|apriori|yeah, I think, I learned that with the university project, I mentioned
19:56:06q66you can specify widget tree hierarchies representing your UI using objects
19:56:06|apriori|a physics simulation software...
19:56:20q66and it's a lot less tedious than doing it procedurally for example like in C
19:56:39|apriori|OOP for the gui stuff + task type management .. normal procedural style for the actual simulation
19:57:32q66in my game engine i have an UI system written entirely in Lua; it uses a combination of object system (a custom hybrid prototype+instance-based) with functional/procedural features
19:57:36|apriori|q66: apropos "tedious":. take a look at the official OpenCL C api :P
19:57:56q66it's basically complete, simple, with nice interface, integrates well, isn't hidden under layers of abstraction
19:58:11q66and takes less than 4k lines for basically complete set with everything
19:58:16|apriori|written from scratch?
19:58:18q66yes
19:58:25|apriori|yeah, that's quite some work
19:58:36q66uses opengl to draw
19:58:38|apriori|and so is a game engine in general
19:58:51q66|apriori|, i consider opengl api nice
19:58:53|apriori|that's why I never started such a project.. it would take years to get somewhere
19:59:06|apriori|q66: Open_C_L
19:59:10q66oh
19:59:15q66haven't worked with opencl much
19:59:34q66but i like opengl for being low level; you can bind it to any language in an evening
19:59:35|apriori|and now khronos introduced computer shaders into OpenGL...
19:59:42q66it's just primitives
19:59:46|apriori|yeah, agreed..
20:00:04|apriori|you need a C API as base to get binding to other languages in a non-nightmarish way
20:00:31q66C as a language is obsolete now, but it's a standard for interoperability
20:00:44|apriori|well, I don't think its obsolete
20:00:52q66|apriori|, for non-low level stuff
20:00:53|apriori|it will remain low-level..for decades, I guess
20:00:59|apriori|yeah, agreed on that
20:01:12Araqit's obsolete thanks to Nimrod's --os:standalone switch :P
20:01:15q66though, I tend to write high level C code from time to time
20:01:28q66mainly when doing code for Enlightenment
20:01:29|apriori|Araq: what does that do?
20:01:35|apriori|Araq: use its own backend?
20:01:35Araqwhich strips away everything and makes nimrod a nicer syntax for C
20:01:49Araqquite the opposite
20:02:03Araqstrips away Nimrod's stdlib and everything
20:02:10|apriori|ah, k
20:02:17|apriori|and about nicer syntax for C .. definetly
20:02:22Araqso that you can use it to develop your own kernel
20:02:24|apriori|and.. I can't say it often enough
20:02:29|apriori|I fucking love the tuple support
20:02:35Araq:-)
20:02:54q66i like Rust
20:02:58q66it's awesome emerging language
20:03:17|apriori|got no real oppinion about it..
20:03:18Araqq66: I'd like to design a UI that doesn't use OO but closures heavily instead
20:03:22|apriori|never use it.. only saw trivial examples
20:03:30q66Araq, my UI technically uses closures
20:03:45q66because Lua's OO is associative arrays with closures :P
20:03:57Araqtrue
20:04:15q66tbh, I often use nested closure hierarchies in Lua, it's often very convenient
20:04:26q66but for the UI OO proved better
20:04:37Araqdamn ;-)
20:04:55q66after learning Lua there is one thing I miss in many languages
20:04:59q66true first class functions.
20:05:43q66where you can simply return a function, pass a function, assign it to a variable .. where a named function is nothing else but a variable with funciton value.
20:06:34AraqNimrod now supports that ;-)
20:06:37q66along with Lua's tables and metatables and the fact every function is a closure with transparent upvalues it makes it a very powerful language albeit minimal
20:07:04Araqafaict closures are stable now
20:07:14q66Araq, are they true garbage collected closures?
20:07:21Araqyes sir
20:07:21q66or fake ones like in C++ :P
20:07:38Araqwell since we have a true GC ... :P
20:08:32q66Araq, c++ won't allow this http://codepad.org/1Vk9Spe7
20:08:35q66so it's fake :P
20:09:27q66cool nimrod has true ones, though.
20:09:30Araqtake a guess ... I'm quite aware of these subtle semantic differences ;-)
20:09:33q66more languages need true closures
20:10:05AraqIMO no true callback system can be built without them
20:10:14q66and no proper iterator system
20:10:23AraqI disagree
20:10:39q66well, you can also do it with coroutines. :P
20:10:46Araqiterators are not closure based, they are coroutine based, yes
20:10:56q66but closures are good for this too.
20:11:02q66and less costly, too
20:13:20q66Araq, like http://codepad.org/9irNLmSs
20:13:28q66equivalent, first one is faster
20:13:52Araqnot in nimrod ;-)
20:14:52q66how so? you need to copy the stack with coroutines
20:15:07q66or at least some of it anyway
20:15:29Araqwell in this simple case you can use nimrod's iterators which use an inlining implementation
20:15:54q66well i'm not talking about a specific simple case, i'm doing a comparison in general
20:16:05q66closures should be faster in principle
20:16:39q66of course, for this exactly i can do for i = 5, 10 do .... :P
20:16:44q66and it'll be teh fastest
20:16:53q66except with luajit where it'll be equivalent
20:17:06Araqluajit is annoying
20:17:29q66luajit is great, but reading its code gives me headaches
20:17:37Araqas it takes away one good reason for static typing ;-)
20:18:02q66static typing is cool, dynamic typing is cool, as long as you use both appropriately
20:18:05Araqhe he, I have been reading luajit's source code too
20:18:20Araqand at least I understand some things ;-)
20:18:36Araqwhereas haskell's compiler is a single big WTF? :D
20:19:01q66yeah, i worked with luajit source as well, initially it's quite cryptic
20:19:14q66but one can figure stuff out eventually
20:19:28q66the biggest problem is to determine what comes from what :P
20:19:49q66as some stuff is macros stuffed in some header etc
20:19:59q66and grep usually gives multiple pages of output
20:30:06Araqbtw rust is indeed nice but I noticed they are throwing away their "type state" system ;-)
20:30:48Araqand IMO immutability is superficial in a systems programming language
20:31:06Araqmutable state is an important optimization
20:32:48Araqthe rust code I skimmed is full of 'let mu' :-)
20:42:08q66Araq, rust is a high level language too.
20:42:26q66I like that Rust doesn't have unconstrained null
20:42:38Araqyeah that's really good
20:42:55Araqit's hard to do for nimrod though
20:43:08Araqas the language still lacks a notion of a constructor
20:44:06Araqmy plan is to support arbitrary predicates as types
20:44:35q66I also like how it integrates various functional stuff into a procedural language; like pattern matching and type classes
20:45:26Araqtrue but not suprising as the compiler was first written in ocaml
20:47:03q66it's also not suprising the compiler was first written in ocaml as ocaml is a good language for writing it.
20:52:39Araqtrue but for Nimrod's AST pattern matching doesn't help much
20:52:50Araqso I sticked with pascal
20:53:12Araqthe foreign function call syntax didn't help either ;-)
20:56:13reactormonkAraq: as long as it's not APL, you shouldn't have a problem with syntax.
20:56:45Araqit was 2004 or something when I decided about an implementation language
20:56:55AraqPascal won as I already was familiar with it
20:57:02Araqhad a good debugger
20:57:19Araqis dead easy to parse and thus to translate into nimrod
20:57:23|apriori|pascal was the first language I used...
20:57:43Araqand I already had lots experience in it
20:57:51Araqand writing lexers and parsers in it
20:57:56Araqso ocaml lost ;-)
20:58:13dom96Araq: So you considered ocaml? Interesting.
20:58:25Araqindeed I did
20:59:05dom96When I look at pascal code I can really see how close it is to Nimrod :P
20:59:35Araqtrue but modula 3 is pretty close too :P
21:01:26Araqiirc I considered Lua, Python, Pascal/Delphi, ML and Ocaml for an implementation language
21:03:22AraqLua and Python lost due to lack of a 'case' statement ;-)
21:04:30dom96hehe.
21:05:30AraqLua is also very error prone
21:05:39Araqoh, something is nil, interesting
21:06:00Araqglad it propagates like NaN through the data flow
21:06:21Araqoh, a typo in the field name ... fun, fun, fun
21:06:38reactormonkAraq: wasn't that what static checking is for?
21:07:12Araqindeed but Lua has none
21:07:19dom96I'm surprised you considered Lua at all
21:07:34Araqfirst version of pas2nim was in Lua ...
21:07:41Araqcrazy, hu?
21:09:02dom96:O
21:09:09dom96I don't believe it
21:09:18Araqbut it's true
21:09:45Araqit started as a script that did some simple replacements
21:09:57Araqline based iirc
21:10:47Araqit got ever more complex until I wanted a real parser
21:11:51Araqand then I threw it away and wrote a pascal parser in pascal for pas2nim
21:45:25*Trix[a]r_za is now known as Trixar_za
21:54:51dom96Araq: So. Are we shooting for 0.9.0 this weekend?
21:55:20Araqhrm no
21:55:32Araqtoo many annoying bugs left and some features missing
21:55:42Araq0.9.0 when I have holidays
21:56:05Araqthe bug |apriori| found is downright embarrassing
21:56:48dom96Alright. Gives me more time to perfect Aporia then
21:57:10Araqget rid of that "double click opens new tab" feature please
21:57:17Araqit's incredibly annoying
21:57:32dom96Who requested that feature?
21:57:42dom96Was it Filwit?
21:57:47Araqdunno
21:57:54Araqmake it optional then
21:58:19dom96I think I will have to rework the settings dialog soon
21:58:40dom96It will become hard to find settings pretty soon
21:59:20Araqthat's why you should just show some text file instead
21:59:33Araqshow the configuration file instead
21:59:45Araq--> search for free
22:00:06Araqscite does it this way
22:00:10Araqand I just love it
22:00:25Araqbecause it makes so much sense
22:00:41Araqit's a *text editor* after all
22:01:09|apriori|Araq: did you actually isolate the cause, yet?
22:01:44Araq|apriori|: looks like a recently introduced bug, haven't looked into it
22:01:51dom96Araq: Yes, but it's a GUI text editor.
22:01:55AraqI'm breaking code instead
22:02:12dom96I'll consider it though
22:02:26|apriori|Araq: ok...
22:02:34Araqis it important?
22:02:39|apriori|Araq: just to make sure.. no need to rush.. I know I can be enerving :D
22:03:13Araqimplementing new features is more fun :P
22:03:23|apriori|yeah, I know that...
22:03:31|apriori|happened to me in game dev, too..
22:03:53AraqI try my best to fix bugs before releasing a new version though
22:03:55|apriori|some issues became 2 years old.. but were so damn incredibly hard to fix with only limited access to the game engine :/
22:04:18Araqin fact, I try to keep bug count below 25
22:04:34Araqas then I have a single page to look at on github
22:07:00|apriori|btw., out of curiosity.. which haskell compiler did you mean with the big "WTF"?
22:07:01|apriori|ghc?
22:07:13|apriori|meant you, Araq
22:07:20Araqyeah, tried to read its source code once
22:07:45|apriori|okay
22:13:58Araqso any experience with D's const system, |apriori| ?
22:14:13|apriori|Araq: not too good ones, yes
22:14:35Araqmy humble opinion is that it's not worth the complexity
22:14:38|apriori|I think it's incredibly hard to get it right
22:15:24|apriori|well, in a way you already have what java has
22:15:31|apriori|final and non-final.. and that's it
22:16:03|apriori|with var and non-var, I mean
22:16:32|apriori|though one apparently can't use them in generics, it seems?
22:17:00Araqwhat do you mean? 'var T' is certainly possible
22:17:33|apriori|yeah, well, forget it.. that was the special case of that actorpool
22:18:00|apriori|the workerthread function must not have the prototype proc (var Tin) {.thread.}
22:18:01Araqalright
22:18:20Araqwell yeah and there are reasons for it
22:18:27Araqyou can use 'ptr T' though
22:18:44|apriori|ok
22:18:49Araqand in fact I would use that as message passing is incredibly slow otherwise
22:19:11|apriori|any specific reasons why?
22:19:29Araq'ptr T' does no deep copy
22:19:31|apriori|I saw you used (apparently) rtti in the rawSend code
22:19:41Araqyeah
22:19:43|apriori|might that be a reason for the peformance issues?
22:19:55Araqexactly that's one problem
22:20:12Araqthe other is that deep copying is required
22:20:22|apriori|hm
22:20:24Araqbecause of Nimrod's GC per thread design
22:20:35Araqbut there are ways around it ;-)
22:20:44|apriori|ah, so when passing over to another thread..it deep copies for the instance to be handled by the other gc, ok
22:21:21Araqin fact, it copies twice
22:21:32|apriori|I'm not quite into all that.. but couldn't a ownership transfer work?
22:21:39|apriori|well, I guess it wont.. one would have to lock both for that
22:21:48Araqhe he yes
22:21:52AraqI thought hard about it
22:22:04Araqand asked other GC writers
22:22:12Araqnobody had a better solution
22:22:29|apriori|btw., when using only value types. am I right the gc is never used?
22:22:32reactormonkAraq: why do you have 'final' at all btw?
22:22:54|apriori|reactormonk: its not exactly final
22:22:55Araq|apriori|: that is correct
22:23:18|apriori|reactormonk: you either have normal type or "var type", with var being mutable in the block
22:23:19Araqreactormonk: the question is "why do I have inheritance at all? :P
22:23:25|apriori|:P
22:23:54|apriori|Araq: that might be explain, why that shootout port even outperformed C.. :P
22:24:13|apriori|god damn.. my english get's weaker.. :P
22:25:11Araq|apriori|: true but nimrod's GC is faster than FPC's memory allocator I think
22:25:21|apriori|oh, ok
22:27:37Araqer no, screw that
22:27:42Araqhttp://forum.nimrod-code.org/t/27
22:27:46Araqdoesn't say that
22:28:28Araqbut there is still room for improvement for the GC and it's designed for predictability anyway
22:28:47Araqraw throughput is not its aim
22:29:38Araqthough it beats boehm's GC for the nimrod compiler itself
22:29:57|apriori|yeah, predictability is way more important
22:30:02|apriori|e.g. for games..
22:30:05Araqwhich is harder than it sounds as boehm uses all of my cores ...
22:30:27Araqwhereas my GC is single threaded :P
22:31:02|apriori|not bad
22:31:26|apriori|but .. developing several multithread algos myself.. I know, how quickly one can run into what I call "synchronisation hell"
22:32:05|apriori|in which the management of the threads etc. becomes so expensive, tha it totally wipes out any benifit of having multithreading at all
22:32:19|apriori|the bad thing about that.. its often not really predictable :/
22:32:25Araqyeah that's a hard problem
22:32:43Araqin my tests the GC never missed a deadline of 2ms :P
22:32:52|apriori|good :)
22:32:58Araqand the tests weren't friendly to it
22:33:05|apriori|even better
22:33:14Araqfor a game 1ms should be easy to achieve
22:33:29|apriori|well, somebody should try ^^
22:33:35Araqyeah ...
22:34:16|apriori|I've considered using nimrod for my next university project (seminar, raytracing on gpus).. but I doubt I will have enough time for it
22:34:29|apriori|an implementation is not needed.. and would be "for fun"
22:34:37Araqhm pity
22:34:38|apriori|but there'd be a lot of basic stuff to implement
22:35:19|apriori|yeah.. severe lack of time is an issue :P
22:35:43dom96good night guys
22:35:53|apriori|night, dom96
22:36:17Araqby dom96
22:48:44AraqI have to sleep too
22:48:46Araqgood night
22:49:14|apriori|night, Araq
23:07:06shevypfft
23:07:13shevywhen he sleeps, there is no new code into nimrod
23:07:17shevywe need a japanese contributor
23:07:17shevy:P
23:09:05|apriori|lol
23:09:25|apriori|I think he already is quite fast
23:09:47|apriori|and highly motivated... like.. you come naming an error.. "I will fix that some day".. 1 day later "fixed"
23:09:54|apriori|you see several examples of that just in the forums
23:15:35shevyyeah
23:34:07*XAMPP quit (Ping timeout: 246 seconds)
23:35:27|apriori|gonna get some sleep, too
23:35:28|apriori|bye
23:35:36*|apriori| quit (Remote host closed the connection)
23:37:09*XAMPP joined #nimrod