Re: DDocs.org: auto-generated documentation for all DUB projects (WIP)
On Thursday, 12 February 2015 at 15:27:14 UTC, Andrej Mitrovic wrote: On 2/10/15, Kiith-Sa via Digitalmars-d-announce digitalmars-d-announce@puremagic.com wrote: DDocs.org (http://ddocs.org) It would be nice to be able to jump to the project's hosted repository in the docs page (maybe generate a github icon with a link somewhere?) E.g. I'm here: http://ddocs.org/bloom/latest/dawg/bloom.html But want to get the link to the github repository. I'd have to go to the homepage and search for the package. Good idea, added the feature.
Re: DDocs.org: auto-generated documentation for all DUB projects (WIP)
On Wednesday, 11 February 2015 at 08:41:26 UTC, Mathias LANG wrote: On Tuesday, 10 February 2015 at 22:40:18 UTC, Kiith-Sa wrote: DDocs.org (http://ddocs.org) is a repository of documentation for DUB projects that automatically re-generates docs as new projects/releases/branch changes are added. The idea is to make documenting D projects as simple as possible, to the point where you don't need to do any work to get documentation for your project other than adding it to the DUB registry. Also, users can now browse documentation for DUB projects even if the author was too lazy to generate it themselves (assuming thy did include some documentation comments). Note that this is still in a very early stage, it was put together in a very quick-and-dirty style by a person with little webdev experience. Currently it just scans `code.dlang.org`, looking for changes (yes, I know, this will break as soon as code.dlang.org changes, I plan to raise issue/s (PRs?) to the dub registry project so it can have a full/stable API, but I wanted to get something to work *right now*. Code is here: * ddocs.org: https://github.com/kiith-sa/ddocs.org * hmod-dub: https://github.com/kiith-sa/hmod-dub * harbored-mod: https://github.com/kiith-sa/harbored-mod Background: When optimizing harbored-mod by testing it on big D projects (gtk-d, tango, vibe.d, etc.), I wrote a simple tool to fetch/generate docs for any DUB project; I got carried away and used that as base for a tool that checks for changes in the DUB registry and generates docs for all projects. Awesome ! I've wanted to do it for quite some time, I think it's really important we get that as a part of code.dlang.org (as well as compatibility badges, but that's another story. Regarding the macros: I recently completed the set of definitions in libddoc ( https://github.com/economicmodeling/libddoc/commit/82fcd8fdcdfe0809437f2415361ef92ee21a5c12 ), so if you're based on Harbored, you should have everything you need. I'm currently working on a fully compliant macro parser in libddoc. The macro WEB is not part of the standard definition, it's part of dlang.org's definitions, which you can find on Github (.ddoc files). More precisely, it's defined in html.ddoc ( https://github.com/D-Programming-Language/dlang.org/blob/master/html.ddoc ). I guess it can make sense to had that file included by default, but at the same time I'd like to avoid projects documentation to rely on non-standard behavior. Yes, I'm using libddoc (not current harbored directly - using a fork) so those builtin macros already work. I don't want to include all the phobos/dlang.org macros, but I will add them on case-by-case basis when people use them in their projects' docs so the docs still work.
Re: DDocs.org: auto-generated documentation for all DUB projects (WIP)
Great work. I noticed a few mistakes in the layout: div.main-description { width: 160%; should be 100% The e-o , p-z links are overlapping the arrow symbols. http://ddocs.org/favicon.ico is a 404 The CSS is actually correct, I'm using display: flex for the intro/developer info. I added prefixes so it works in browsers like Safari that don't yet support the official syntax. It'll still look ugly in IE9 and older (and frankly, I don't see that as an issue). Same with the arrows/links, where I'm using transform: rotate(). Browser support for these features: http://caniuse.com/#feat=flexbox http://caniuse.com/#feat=transforms2d Also, added a favicon (just a png of the dlang.org favicon).
Re: DDocs.org: auto-generated documentation for all DUB projects (WIP)
On Tuesday, 10 February 2015 at 23:53:19 UTC, MrSmith wrote: On Tuesday, 10 February 2015 at 22:40:18 UTC, Kiith-Sa wrote: DDocs.org (http://ddocs.org) is a repository of documentation for DUB projects that automatically re-generates docs as new projects/releases/branch changes are added. The idea is to make documenting D projects as simple as possible, to the point where you don't need to do any work to get documentation for your project other than adding it to the DUB registry. Also, users can now browse documentation for DUB projects even if the author was too lazy to generate it themselves (assuming thy did include some documentation comments). Note that this is still in a very early stage, it was put together in a very quick-and-dirty style by a person with little webdev experience. Currently it just scans `code.dlang.org`, looking for changes (yes, I know, this will break as soon as code.dlang.org changes, I plan to raise issue/s (PRs?) to the dub registry project so it can have a full/stable API, but I wanted to get something to work *right now*. Code is here: * ddocs.org: https://github.com/kiith-sa/ddocs.org * hmod-dub: https://github.com/kiith-sa/hmod-dub * harbored-mod: https://github.com/kiith-sa/harbored-mod Background: When optimizing harbored-mod by testing it on big D projects (gtk-d, tango, vibe.d, etc.), I wrote a simple tool to fetch/generate docs for any DUB project; I got carried away and used that as base for a tool that checks for changes in the DUB registry and generates docs for all projects. That is pretty cool! I will put a link to it in all my project readmes. I've noticed that License: a$(WEB boost.org/LICENSE_1_0.txt, Boost License 1.0). gets rendered as a. Am I doing it wrong? There's a bunch of macros used in many D projects not documented in the language reference. They seem to be defined somewhere in Phobos/Druntime (? - not sure), not really built in, but I add them as I find them so compatibility is kept. Added $WEB to harbored-mod now. There already also is LINK, LINK2, and HTTP... and of course Markdown [link](http://link.org) - but that doesn't work with plain DDoc generators. The change can take a while to propagate to your packages as ddocs.org waits a few days before regenerating docs for releases that already have docs generated and 2 days for known branches (~master) so it doesn't constantly regenerate docs for everything - it is feasible now but won't be if the DUB registry gets bigger as fast as I expect.
DDocs.org: auto-generated documentation for all DUB projects (WIP)
DDocs.org (http://ddocs.org) is a repository of documentation for DUB projects that automatically re-generates docs as new projects/releases/branch changes are added. The idea is to make documenting D projects as simple as possible, to the point where you don't need to do any work to get documentation for your project other than adding it to the DUB registry. Also, users can now browse documentation for DUB projects even if the author was too lazy to generate it themselves (assuming thy did include some documentation comments). Note that this is still in a very early stage, it was put together in a very quick-and-dirty style by a person with little webdev experience. Currently it just scans `code.dlang.org`, looking for changes (yes, I know, this will break as soon as code.dlang.org changes, I plan to raise issue/s (PRs?) to the dub registry project so it can have a full/stable API, but I wanted to get something to work *right now*. Code is here: * ddocs.org: https://github.com/kiith-sa/ddocs.org * hmod-dub: https://github.com/kiith-sa/hmod-dub * harbored-mod: https://github.com/kiith-sa/harbored-mod Background: When optimizing harbored-mod by testing it on big D projects (gtk-d, tango, vibe.d, etc.), I wrote a simple tool to fetch/generate docs for any DUB project; I got carried away and used that as base for a tool that checks for changes in the DUB registry and generates docs for all projects.
Re: Harbored-mod (doc generator) 0.2: Cross-referencing, methods/fields no longer in separate files
Atleast on chrome win7 the font is absolutely awful. Could you post a screenshot? I mostly just use the default sans which can result in any font being used based on the OS, Also any chance that it could output json to represent modules instead of html? Very unlikely in near future, I've refactored *most* HTML writing code but the rest would still need a lot of work, and then there'd be a non-trivial chunk of HTMLWriter code to rewrite (1k lines), which would likely result in finding finding more deficencies in separation of HTML writing from the rest of the code.
Re: Harbored-mod (doc generator) 0.2: Cross-referencing, methods/fields no longer in separate files
On Sunday, 1 February 2015 at 13:40:29 UTC, Rikki Cattermole wrote: On 2/02/2015 2:36 a.m., Kiith-Sa wrote: Atleast on chrome win7 the font is absolutely awful. Could you post a screenshot? I mostly just use the default sans which can result in any font being used based on the OS, http://imgur.com/JvbjN9o Not sure why Windows interprets 'sans' as 'serif', but it should at least use sans (Verdana on Windows) now.
Harbored-mod (doc generator) 0.2: Cross-referencing, methods/fields no longer in separate files
Harbored-mod (https://github.com/kiith-sa/harbored-mod) is a documentation generator based on Brian Schott's Harbored that supports both DDoc and Markdown in documentation comments. -- Examples of generated docs -- * Public imports in a package.d: http://defenestrate.eu/docs/tharsis-core/api/tharsis/entity.html * Class with a template parameter, member functions and aliases: http://defenestrate.eu/docs/tharsis-core/api/tharsis/entity/entitymanager/EntityManager.html * Simple DDoc See_Also: section: http://defenestrate.eu/docs/tharsis-core/api/tharsis/entity/componenttypeinfo/ImmutableRawComponent.html * Note: DDoc section with some markdown: http://defenestrate.eu/docs/tharsis-core/api/tharsis/entity/processtypeinfo.html#prioritizeProcessOverloads -- Release highlights -- * Automatic cross-referencing in code blocks and inline code * New (and now default) output format: aggregated HTML; generate documentation files only for aggregates (modules, structs, classes, etc.) and document non-aggregate members (functions, variables, etc.) in these files. The previous, DDox compatible format, where a separate file is generated for every symbol, is still supported through the `--format=html-simple` option. * Various style and usability improvements * Major refactoring * Many bugfixes Full changelog: https://github.com/kiith-sa/harbored-mod/releases/tag/v0.2.0
Re: Harbored-mod (doc generator) 0.2: Cross-referencing, methods/fields no longer in separate files
On Saturday, 31 January 2015 at 17:43:49 UTC, jklp wrote: On Saturday, 31 January 2015 at 15:31:37 UTC, Kiith-Sa wrote: Harbored-mod (https://github.com/kiith-sa/harbored-mod) is a documentation generator based on Brian Schott's Harbored that supports both DDoc and Markdown in documentation comments. -- Examples of generated docs -- * Public imports in a package.d: http://defenestrate.eu/docs/tharsis-core/api/tharsis/entity.html * Class with a template parameter, member functions and aliases: http://defenestrate.eu/docs/tharsis-core/api/tharsis/entity/entitymanager/EntityManager.html * Simple DDoc See_Also: section: http://defenestrate.eu/docs/tharsis-core/api/tharsis/entity/componenttypeinfo/ImmutableRawComponent.html * Note: DDoc section with some markdown: http://defenestrate.eu/docs/tharsis-core/api/tharsis/entity/processtypeinfo.html#prioritizeProcessOverloads -- Release highlights -- * Automatic cross-referencing in code blocks and inline code * New (and now default) output format: aggregated HTML; generate documentation files only for aggregates (modules, structs, classes, etc.) and document non-aggregate members (functions, variables, etc.) in these files. The previous, DDox compatible format, where a separate file is generated for every symbol, is still supported through the `--format=html-simple` option. * Various style and usability improvements * Major refactoring * Many bugfixes Full changelog: https://github.com/kiith-sa/harbored-mod/releases/tag/v0.2.0 Hello i get an error while trying to compile it on Win32, with dmd 2066.1: Error 42: Symbol Undefined _D3std5array40__T5emptyTE14symboldatabase10SymbolTypeZ5emptyFNaNbNdNiNfxAE14symboldatabase10SymbolTypeZb demangled: pure nothrow @property @nogc @safe bool std.array.empty!(symboldatabase.SymbolType).empty(const(symboldatabase.SymbolType[])) the error only happend since commit 05ab80052d1b7d1dc3b1ff38c30addd9df7f3db4 otherwise thx for this nice software. Thanks for detecting the error/commit. Unfortunately I have no way to test on Win32 currently, and on Linux (32 or 64) I couldn't reproduce this (and AFAIK Mac build works as well), but based on the demangled name I tried to blindly fix a possible cause. That said, there is no obvious cause; I suspect this may be a Win32-specific linker error. Could you clone the current git master (https://github.com/kiith-sa/harbored-mod.git) and try if it works?
Re: Calypso: Direct and full interfacing to C++
Just in case you don't follow digitalmars.D: http://forum.dlang.org/thread/m9s4cd$2s1v$1...@digitalmars.com#post-m9s4cd:242s1v:241:40digitalmars.com
Re: This Week in D, issue 2
On Monday, 19 January 2015 at 17:05:54 UTC, Adam D. Ruppe wrote: http://arsdnet.net/this-week-in-d/jan-18.html http://www.reddit.com/r/programming/comments/2sy7lg/this_week_in_d_january_18_2015/ For those of you who saw the draft earlier, hit refresh to ensure you aren't seeing a cached version. RSS feed: http://arsdnet.net/this-week-in-d/twid.rss This week, we got new web style thanks to the folks in the other forum. Tech speaking, it now serves gzipped files as a test of what I want to see about putting on dlang.org too. Email list will be coming next week and hopefully a move to dlang.org too. Fixed a few bugs in my stats gathering too, hopefully we'll have all the kinks worked out and on-time release next week! The 'dividend / dividend' error is still there (in divideBy).
Re: Binutils 2.25 Released - New D demangling support
On Tuesday, 13 January 2015 at 21:31:15 UTC, Iain Buclaw wrote: Hi, I'm not sure when it was announced, but binutils 2.25 has been released! There's a small reason for excitement as it is the first to come with D demangling support in the GNU toolchain. Unfortunately, I forgot to send in patches that actually document it! So for the moment, it's a little secret feature shared between all who may read this. :o) How do you use it? --- By default, binutils programs will treat all mangled symbols as C++, however you can override this by using --demangle=dlang, eg: objdump -d --demangle=dlang prog.o nm --demangle=dlang ddmd You can also kickstart your usage by putting -L--demangle=dlang in your dmd.conf, and watch your obscure linker errors turn into pretty function signatures. Could you add this note somewhere visible into the wiki so it doesn't get lost? Also, could DMD do this by default if available so it works out of the box?
Re: DMD's lexer available on code.dlang.org
On Sunday, 4 January 2015 at 17:27:57 UTC, Daniel Murphy wrote: Kiith-Sa wrote in message news:nffxogzwpmayydyom...@forum.dlang.org... (sorry if you get this question too often) How is DDMD as a whole going? Is it getting closer or are ongoing DMD changes slowing it down too much? It's been sitting still for 8 nearly months because of https://github.com/braddr/d-tester/issues/39 and https://github.com/braddr/d-tester/issues/40 I don't mind getting asked, I just wish the answer would change. Anyway, great to have the lexer on DUB, not going to use if for now because I expect there to be changes, but I guess it may eventually be useful for writing tools. Hopefully lots of changes. I can't really help with those, but FWIW I bumped the issues.
Harbored-mod 0.1: A documentation generator with DDoc and Markdown support based on Harbored
Harbored-mod is a documentation generator based on Brian Schott's Harbored. Features It supports (a non-conflicting subset of) Markdown besides DDoc, so Markdown can be used together with DDoc in documentation comments. Some other features: * Decent defaults. `hmod source` will generate rather usable documentation very similar to this one: * CSS and main page content can be overridden. Extra content can be added to the table of contents (e.g. links to non-DDoc generated documentation, I use it to link to tutorials/articles written in ReStructuredText) * Documented config file you can write all command-line options to, so just typing `hmod` will regenerate the docs. * Generated file paths are same as those generated by DDox, so links will not break if moving from one to the other. -- Examples of generated docs (work-in-progress Tharsis docs) -- http://defenestrate.eu/docs/tharsis-core/api/tharsis/entity/entitymanager/EntityManager.html http://defenestrate.eu/docs/tharsis-core/api/tharsis/entity/componenttypeinfo/ImmutableRawComponent.html http://defenestrate.eu/docs/tharsis-core/api/tharsis/entity/processtypeinfo/prioritizeProcessOverloads.html - Links - * GitHub: https://github.com/kiith-sa/harbored-mod * Original Harbored: https://github.com/economicmodeling/harbored -- Background -- Harbored-mod started as an attempt to remove things I didn't want from Harbored (inability to work without JS, frames, etc.) but I ended up with more changes than I originally intended, and I think at this point it might be useful for other people as well. I pushed it into a separate repository because I don't think at this point it can be sanely merged into harbored (plus there are those features I removed).
Re: C# to D Compiler :)
On Sunday, 21 December 2014 at 15:12:26 UTC, ZombineDev wrote: One example of a somewhat large performance oriented C# application is OpenRA[1]. (An open-source implementation of the Command Conquer: Red Alert engine using .NET/Mono and OpenGL. Runs on Windows, Linux and Mac OS X) It is interesting to see how far it can be translated from C# to D and what the performance would be. I'll give it a shot when I have the time, though you may also find it useful as a way to benchmark your compiler ;) [1]: https://github.com/OpenRA/OpenRA Last time (long ago) I looked at OpenRA code it didn't look like its source would (directly) translate well to high-performance D/C++/whatever. You'd end up needing to turn some structs to classes, limit GC usage (.NET has a much better GC, yet non-GC code is simpler in D), etc. (I'm planning to work on a project with similar goals to OpenRA, although for academic reasons I'm still only working on its entity system (https://github.com/kiith-sa/tharsis-core).
Re: 2D game engine written in D is in progress
On Wednesday, 17 December 2014 at 19:06:24 UTC, solidstate1991 wrote: I started to work on an engine, which emulates the features and limitations of older graphics systems, mainly for retro-styled indie games. Features: -Support for parallax scrolling, and multiple sprite and tile layers -Support for sprite scaling and rotation -Max. 65536 colors on screen from a palette -Variable sprite sizes for easier development, tile layers can work with any size of tiles as long as all of the tiles are the same size on one layer -Collision detection -Support for modding -Sprite editor, tile map editor It's not a dethroner for the Unreal Engine 4, but I try my best to get it into work. It's current name is VDP engine, but if you can come up with a better name I might change it. I still haven't decided to make it open or closed source (if it'll be ever used by any game that makes profit, I'd like to get some share from it). Noticed there's a question at Reddit (a bot submits all announce threads to Reddit): https://www.reddit.com/r/d_language/comments/2pm2ba/2d_game_engine_written_in_d_is_in_progress/
Re: dsource.org moved
On Wednesday, 3 December 2014 at 06:39:34 UTC, Vladimir Panteleev wrote: On Tuesday, 2 December 2014 at 23:02:32 UTC, Kiith-Sa wrote: On Tuesday, 2 December 2014 at 22:20:29 UTC, Vladimir Panteleev wrote: DSource in the headlines? In 2014? Shocking, I know. Since Brad is no longer an active D user, and the website has had spotty uptime lately, I've offered to take over the hosting and any maintenance. Although opinions exist that the site should simply be shut down, I think archiving it would be a better approach. The website has historical relevance to the D community, and might be required to get ancient D code running again. For example, we could make things read-only and make it obvious on every project page that we don't go to DSource any more. I can't exactly undertake a large redesign, but we can discuss our options. Planet D (planet.dsource.org) is moved as well, and should continue to operate merrily. If your D blog's not there, let me know! My blog is not there, but it's not pure D blog: defenestrate.eu defenestrate.eu/rss.html Any way you can provide an RSS or ATOM feed for just the posts tagged D? Don't know any way other than maybe modifying the generator I'm using, but I don't have the time to do that in near future (I know little about how RSS works/web dev in general so I'd have to spend some time learning that too). I'm using a static site generator (Tinkerer) based on Sphinx/ReStructuredText (think Markdown on steroids), so the blog is actually a static site.
Re: dsource.org moved
On Tuesday, 2 December 2014 at 22:20:29 UTC, Vladimir Panteleev wrote: DSource in the headlines? In 2014? Shocking, I know. Since Brad is no longer an active D user, and the website has had spotty uptime lately, I've offered to take over the hosting and any maintenance. Although opinions exist that the site should simply be shut down, I think archiving it would be a better approach. The website has historical relevance to the D community, and might be required to get ancient D code running again. For example, we could make things read-only and make it obvious on every project page that we don't go to DSource any more. I can't exactly undertake a large redesign, but we can discuss our options. Planet D (planet.dsource.org) is moved as well, and should continue to operate merrily. If your D blog's not there, let me know! My blog is not there, but it's not pure D blog: defenestrate.eu defenestrate.eu/rss.html
Despiker 0.1: a GUI real-time profiler for game development
-- Announcing Despiker, a GUI real time profiler for game development -- This is is a visualizer for the Tharsis.prof frame-based profiler library. Profiling with writeln turned out to be unintuitive, so I ended up making a GUI. * Shows a graph of overhead in a frame * Updates in real time as the profiled program (game) runs * Can pause to look at the current frame * Can browse/jump frames, jump to the worst frame. The GUI is still a bit inconvenient (need slow-motion replay and minimap to efficiently browse), but it got to the point where it's usable. Note: this is still unstable and I'm not likely to spend much time on it in the following months (as I need to work on the project I wrote this for in the first place.) GitHub: https://github.com/kiith-sa/despiker/issues/16 Video (WebM): http://defenestrate.eu/docs/despiker/_static/despiker.webm Tutorial: http://defenestrate.eu/docs/despiker/tutorials/getting_started.html Tharsis.prof: https://github.com/kiith-sa/tharsis.prof
Re: [OT Security PSA] Shellshock: Update your bash, now!
On Monday, 6 October 2014 at 15:06:04 UTC, Steven Schveighoffer wrote: On 10/2/14 3:42 AM, Kagamin wrote: On Thursday, 2 October 2014 at 07:14:35 UTC, Iain Buclaw via Digitalmars-d-announce wrote: Doesn't Linux Mint provide an upgrade facility for you? No idea. I use Linux Mint, I believe I upgraded once *. I don't think it was complex, just an upgrade through the standard UI for updates. * Note: I have a bad memory when it comes to things like this :) -Steve Mint always supported upgrades between LTS releases. There were no upgrades between non-LTS releases, which were basically just bit-more-stable betas. That's changed now as posted above, Mint 14.04 to 15.10 (and possibly longer) will be seamlessly upgradable release to release as Mint gradually diverges away from its Ubuntu base. 16.04 may be a reset, or they may continue to diverge further, or they may move fully to Debian; but they'll probably still have an upgrade path as it will be an LTS.
Re: D2 port of Sociomantic CDGC available for early experiments
On Monday, 6 October 2014 at 16:51:07 UTC, Dicebot wrote: https://github.com/D-Programming-Language/druntime/pull/985 Here is initial port result available for early experiments. It can be compiled with make -f posix.mak GC_TYPE=concurrent and passes the test suite with only shared library tests disabled (ef20b7a). There are still many issues to be aware of: 1) Documentation is largely missing. Working on it, reading @leandro-lucarella-sociomantic old posts (http://www.llucax.com.ar/blog/blog/tag/understanding%20the%20current%20gc) may help in the meanwhile 2) Code style differs from Phobos standards. To be fixed soon. 3) Shared library support is completely missing. Proxy infrastructure similar to one in existing gc needs to be added and I don't know if actual implementation will work in such environments or more changes will be needed. 4) Deadlock issue (http://www.dsource.org/projects/tango/ticket/2087) still remains. It is not critical to our code because it almost never uses threads so no big effort was put into it but this can be huge problem for any other project. In general this is very far from something that can be merged upstream straight away and replace default GC on linux. It can be interesting for other projects with similar architecture and requirements and probably helpful for anyone else working on better D GC. And contributions are welcome via pull requests towards this PR base branch (https://github.com/mihails-strasuns-sociomantic/druntime-1/tree/sociomantic-cdgc-wip) or as e-mail patches (pub...@dicebot.lv) Can't really test this right now, just want to say that it's awesome that someone is working on this and I really hope this can (eventually) get merged.
Re: D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1)
Should be fixed now with 0.4.6: http://code.dlang.org/packages/dyaml/0.4.6
Re: D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1)
On Wednesday, 6 August 2014 at 21:18:00 UTC, Gary Willoughby wrote: On Wednesday, 6 August 2014 at 17:09:50 UTC, Kiith-Sa wrote: ## D:YAML 0.4.5 ## For compatibility with DMD 2.065, I also made a release out of the last state of git master before 2.066 was required. See the release at GitHub: https://github.com/kiith-sa/D-YAML/releases/tag/v0.4.5 Great thanks. One tiny issue however is that v0.4.5 is not available via the dub registry. It looks like the registry has only picked up v0.5.0. Is there any way to work this around? (I'm not in charge of the dub package, and even if I were I don't see how I could force it to detect the older tag) - the only thing I can think of right now is putting it into a separate repo and registering it as a separate package, which is rather unwieldy.
D:GameVFS 0.2
D:GameVFS is a (very) minimal virtual file system library for game development. https://github.com/kiith-sa/D-GameVFS I updated D:GameVFS to work with DMD 2.066 and put it on DUB. There are no major changes, just a bunch of small features I added over time as I use it. Note that at this point this isn't hugely useful. The only VFS backend that is implemented is... plain FS (I expect to implement a zip backend once I need it), the main useful feature is directory stacking (i.e. treating files in multiple directories as if they were one directory, where files from directories up the stack override those from directories below). As always, the API is not stable. GitHub release with changelog: https://github.com/kiith-sa/D-GameVFS/releases/tag/v0.2.0 API docs: http://defenestrate.eu/docs/dgamevfs/index.html DUB registry: http://code.dlang.org/packages/dgamevfs
D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1)
D:YAML is a YAML parser and emitter for D. It's been a while since the last release and many small features have been added to the Git master over time, so I finally forced myself to do an official release. D:YAML at GitHub: https://github.com/kiith-sa/D-YAML ## Highlights ## Some breaking changes: YAML loading API using std.stream is now obsolete. D:YAML 0.5 requires DMD 2.066 (yes, the one that is not yet released - see 0.4.5 below for compatibility). DUB by default: Stopped using my own build script, updated examples to use DUB, etc. Significantly less memory allocations, both GC and malloc: D:YAML scanner now uses slices to avoid any allocations. UTF-8 is now used internally instead of decoding into UTF-32. Better performance: I've spent some time profiling and optimizing, mainly for the use case of 'parsing few-kiB mostly ASCII files not using crazy advanced YAML features' (I use YAML for game-related stuff). Performance for the above use case is up about 80% (or, time spent is down to about 55%). For mostly-unicode (that is, mostly non-ASCII unicode) files, performance is down slightly (~10-15%). I don't have any thorough measurements to release, just did various tests as I went. Retired the dyaml.alwaysdata.net site, moved API docs/tutorials to my new site: http://defenestrate.eu/docs/dyaml/ And various small features/fixes/improvements. See the full changelog for details: https://github.com/kiith-sa/D-YAML/releases/tag/v0.5.0 ## D:YAML 0.4.5 ## For compatibility with DMD 2.065, I also made a release out of the last state of git master before 2.066 was required. See the release at GitHub: https://github.com/kiith-sa/D-YAML/releases/tag/v0.4.5 ## TinyEndian ## This is just a single module with two functions that I separated into a DUB package as I think it may be useful. When removing the std.stream dependency from D:YAML I had to replace EndianStream with my own code (based on EndianStream but mostly rewritten). The result are two pure nothrow @nogc functions to detect UTF byte order marks and swap endianness https://github.com/kiith-sa/tinyendian
Re: Programming in D book is 100% translated
On Thursday, 24 July 2014 at 08:11:01 UTC, Ali Çehreli wrote: I have completed the translation of the book. Phew... :) However, there is still more work, like adding a UDA chapter and working on many little TODO items. The following was the final chapter, which actually only scratches the surface of the very broad topic: * Memory Management As a reminder, the book is available as PDF, downloadable from the header of each chapter: http://ddili.org/ders/d.en/index.html Ali Awesome. This needs to be one of the first things a visitor notices on the D site.
Re: Programming in D book is 100% translated
On Thursday, 24 July 2014 at 08:11:01 UTC, Ali Çehreli wrote: I have completed the translation of the book. Phew... :) However, there is still more work, like adding a UDA chapter and working on many little TODO items. The following was the final chapter, which actually only scratches the surface of the very broad topic: * Memory Management As a reminder, the book is available as PDF, downloadable from the header of each chapter: http://ddili.org/ders/d.en/index.html Ali On reddit: http://www.reddit.com/r/programming/comments/2bl51j/programming_in_d_a_great_online_book_for_learning/
Re: DSnips - making D coding awesome in Vim (with GIFs!)
On Friday, 18 July 2014 at 00:44:15 UTC, uri wrote: On Thursday, 17 July 2014 at 20:57:10 UTC, Kiith-Sa wrote: DSnips is a set of UltiSnips snippets for D (now with GIFs showing each snippet in action (image-heavy)) https://github.com/kiith-sa/DSnips This is an attempt to overhaul the D snippets I got merged to UltiSnips (now a separate vim-snippets repository), as the previous snippets had quite a few bugs. The snippets should now be easy to use together/chain (e.g. an imp (import) snippet places the cursor on the beginning of the next line so imp can be used for another import, wrap in try/catch places the cursor to be ready to add more catch blocks, module license can be replaced by using another snippet inside it, etc. There are some rather intelligent snippets, e.g. an operator builder for opBinary/opUnary/opOpAssign that will generate the skeleton for all operators typed in by the user, automatic DDoc Params: generation from function parameters, etc. I want to eventually try to merge this back to the default repository, but I'd like some comments/criticism/ideas first. Should any snippets be removed? Added? Any problems with the current snippets? (the wrap in try/catch in the previous version had issues with wrapping indented text, for example) Trying this out now. It's very good so far, nice work! /uri I made a blog post about DSnips, what to consider when designing snippets, etc: http://www.reddit.com/r/vim/comments/2b2609/ultisnips_snippet_design_and_gifs/
Re: dimgui - A port of imgui, the immediate-mode OpenGL GUI library
On Thursday, 22 May 2014 at 15:20:42 UTC, Andrej Mitrovic via Digitalmars-d-announce wrote: If you need a very minimal but usable GUI library for your OpenGL applications, then an immediate-mode GUI such as IMGUI could be just the trick. IMGUI has been ported to D and can be found at the following links: https://github.com/d-gamedev-team/dimgui http://code.dlang.org/packages/dimgui dimgui is zlib-licensed. I'm starting work on a (very) small tool using dimgui. When building an example (demo), I had to explicitly tell DUB to link the GLFW library - shouldn't this already be handled by the GLFW bindings? (Also, on Linux you have to tell it to link dl...) I.e. I added the following to dub.json of the example: libs: [ dl, glfw ], I assume it works on Windows without this? (if so, how to change it so it works on both?) I'm on Linux (Mint 17 x64, similar to Ubuntu 14.04) - btw, Mint17/Ubuntu14.04 only has GLFW2 in the repo, which confused me when I had GLFW but still saw unresolved symbols - but the next release will probably have GLFW3. Also: it would be nice to have example/s that is completely standalone, can be copied by itself and works (currently examples depend on the DroidSans.ttf file higher up the directory tree) - maybe even in a separate repo.
Re: QtE - D small binding for Qt.
On Wednesday, 11 June 2014 at 10:20:39 UTC, MGW wrote: Example of D (dmd 2.065 64) with Qt 64 Windows64/Linux64. Running programs *.EXE with key --debug. http://yadi.sk/d/qLE7Kgz9SpKEX This looks pretty good. How much of Qt is usable through this? E.g. I assume nothing templated is usable?
Re: Chuck Allison's talk is up
On Thursday, 5 June 2014 at 21:15:40 UTC, Olivier Henley wrote: On Thursday, 5 June 2014 at 16:33:49 UTC, Andrei Alexandrescu wrote: https://news.ycombinator.com/newest http://www.reddit.com/r/programming/comments/27e5d7/dconf_day_1_talk_3_a_real_d_in_programming/ https://www.facebook.com/dlang.org/posts/860528800627469 https://twitter.com/D_Programming/status/474587858812948480 Andrei Hi, I would love to spam my colleges here at Ubisoft Montreal with DConf 2014 talks ... but UStream is blocked studio wide. Is there any plans to mirror the talks somewhere else? We can stream from Vimeo and Youtube. I won't force feed every programmer here ... but we are at least 500 mainly coding C++ and C#. IMHO we are first class potential victims for D. Thx, Olivier p.s: My boss already agreed that I code my next tool in D. I'll let you know in due time... As mentioned above, downloading the video with VideoDownloadHelper (FF) or a Chrome equivalent works.
Re: Video of my LDC talk @ FOSDEM'14
On Monday, 26 May 2014 at 18:09:46 UTC, Walter Bright wrote: On 5/26/2014 10:30 AM, w0rp wrote: On Monday, 26 May 2014 at 17:06:27 UTC, Walter Bright wrote: Youtube has solved all these problems - why not use it? You can view .webm directly in recent Firefox or Chrome versions on Windows, you an also view .webm in IE9 and above provided you have the right codecs installed. It's a perfectly acceptable format. It doesn't work on the browser that comes with Windows. That makes it undesirable if you wish to reach the largest audience with the least friction. Why restrict the audience if you don't have to? What is gained by using .webm that would offset the reduced audience? It is gradually becoming the de facto standard for video on web. It can already be viewed directly in all modern browsers even outside of YouTube. It is usable on platforms where flash is now dead (the number of which is increasing). Vast (vast! even on Windows) majority of the audience don't use IE. It doesn't have patent issues. YouTube is (very slowly) moving to .webm too, after all they were the main reason for it. I for one like videos that are don't all depend on a single platform and that I can download without resorting to hacks. And that I can view in my browser more seamlessly than what YouTube's flash interface can do. With this kind of thinking we'd still be using $FORMAT where $FORMAT is the first format that became the de-facto standard in a particular area.
Re: dbox is a complete D2 port of the Box2D game physics library
On Friday, 23 May 2014 at 22:52:53 UTC, Andrej Mitrovic via Digitalmars-d-announce wrote: On 5/24/14, Piotrek via Digitalmars-d-announce digitalmars-d-announce@puremagic.com wrote: nice one. How does it compare to C++ version in terms of performance? I haven't tested the performance yet! I'm definitely interested, but as usual I assume LDC will probably beat DMD in this area. Do you intend to keep this a straight port or will it be open to modifications? From a brief look at the source, it's possible I'll end up needing turning shapes from classes to structs and/or hooking it up with a custom allocator. I expect to need to spawn/destroy objects of varying shapes very often. (I do plan to try the current version first, though; it may be good enough) If I make such changes (which may affect the API, although the changes can probably be kept somewhat small), should I open a pull request or start a fork (ddbox? ;p)? (Same question applies to other of your ports)
Re: DlangUI
On Tuesday, 20 May 2014 at 18:13:36 UTC, Vadim Lopatin wrote: Hello! I would like to announce my project, DlangUI library - cross-platform GUI for D. https://github.com/buggins/dlangui License: Boost License 1.0 Native library written in D (not a wrapper to other GUI library) - easy to extend. As a backend, uses SDL2 on any platform, Win32 API on Windows, XCB on Linux. Other backends can be added easy. Tested on Windows and Linux. Supports hardware acceleration - drawing using OpenGL when built with version=USE_OPENGL. Unicode support. Internationalization support. Uses Win32 API fonts on Windows, and FreeType on other platforms. Same look and feel can be achieved on all platforms. Flexible look and feel - themes and styles. API is a bit similar to Android UI. Flexible layout, support of different screen DPI, scaling. Uses two phase layout like in Android. Supports drawable resources in .png and .jpeg, nine-patch pngs and state drawables like in Android. Single threaded. Use other threads for performing slow tasks. Mouse oriented. Actually, it's a port (with major redesign) of my library used for cross-platform version of my application CoolReader from C++. State of project: alpha. But, already can be used for simple 2D games and simple GUI apps. I'm keeping in mind a goal to write D language IDE based on dlangui. :) Adding support of 3D graphics is planned. Currently implemented widgets: TextWidget - simple static text (TODO: implement multiline formatting) ImageWidget - static image Button - simple button with text label ImageButton - image only button TextImageButton - button with icon and label CheckBox - check button with label RadioButton - radio button with label EditLine - single line edit EditBox - multiline editor VSpacer - vertical spacer - just an empty widget with layoutHeight == FILL_PARENT, to fill vertical space in layouts HSpacer - horizontal spacer - just an empty widget with layoutWidth == FILL_PARENT, to fill horizontal space in layouts ScrollBar - scroll bar TabControl - tabs widget, allows to select one of tabs TabHost - container for pages controlled by TabControl TabWidget - combination of TabControl and TabHost Layouts - Similar to layouts in Android LinearLayout - layout children horizontally or vertically depending on orientation VerticalLayout - just a LinearLayout with vertical orientation HorizontalLayout - just a LinearLayout with vertical orientation FrameLayout - all children occupy the same place; usually onle one of them is visible TableLayout - children are aligned into rows and columns of table List Views - similar to lists in Android UI API. ListWidget - layout dynamic items horizontally or vertically (one in row/column) with automatic scrollbar; can reuse widgets for similar items ListAdapter - interface to provide data and widgets for ListWidget WidgetListAdapter - simple implementation of ListAdapter interface - just a list of widgets (one per list item) to show Sample project, example1 contains demo code for most of dlangui API. Try it using DUB: git clone https://github.com/buggins/dlangui.git cd dlangui dub run dlangui:example1 Fonts note: on Linux, several .TTFs are loaded from hardcoded paths (suitable for Ubuntu). TODO: add fontconfig support to access all available system fonts. Helloworld: // main.d import dlangui.all; mixin DLANGUI_ENTRY_POINT; /// entry point for dlangui based application extern (C) int UIAppMain(string[] args) { // resource directory search paths string[] resourceDirs = [ appendPath(exePath, ../res/), // for Visual D and DUB builds appendPath(exePath, ../../res/) // for Mono-D builds ]; // setup resource directories - will use only existing directories Platform.instance.resourceDirs = resourceDirs; // select translation file - for english language Platform.instance.uiLanguage = en; // load theme from file theme_default.xml Platform.instance.uiTheme = theme_default; // create window Window window = Platform.instance.createWindow(My Window, null); // create some widget to show in window window.mainWidget = (new Button()).text(Hello worldd).textColor(0xFF); // red text // show window window.show(); // run message loop return Platform.instance.enterMessageLoop(); } DDOC generated documentation can be found there: https://github.com/buggins/dlangui/tree/master/docs For more info see readme and example1 code. I would be glad to see any feedback. Can this project be useful for someone? What features/widgets are must have for you? Best regards, Vadim coolreader@gmail.com Awesome. Does this work like a conventional GUI toolkit (Gtk/Qt) or could I integrate this in an OpenGL game? (or would I have to integrate the game in it?)
Re: Dash: An Open Source Game Engine in D
On Monday, 19 May 2014 at 19:50:37 UTC, Colden Cullen wrote: Hi everyone, I’m super excited to be able to announce that the Dash game engine[1] is finally stable and ready for public use! I’m currently the Lead Engine Programmer at Circular Studios[2] (the group behind Dash). We had 14 people working on the team, 6 engine programmers and 8 game developers creating Spectral Robot Task Force, a turn-based strategy game built with Dash. Dash is an OpenGL engine written in the D language that runs on both Windows and Linux. We use a deferred-rendering model in the current pipeline, and a component model for game development and logic. Other major features at the moment include networking, skeletal-animation support, content and configuration loading via YAML, and UI support through Awesomium[3] (though we are in the process of moving over to using CEF[4] itself). Our vision for Dash is to have the programmer-facing model of XNA/Monogame combined with the designer-friendliness of Unity in a fully free and open source engine. We also hope that Dash can help to prove the power and maturity of D as a language, as well as push D to continue improving. We’re open to any feedback you may have, or better yet, we’d love to see pull requests for improvements. [1] https://github.com/Circular-Studios/Dash [2] http://circularstudios.com/ [3] http://awesomium.com/ [4] https://code.google.com/p/chromiumembedded/ Looks awesome. Don't have time now (finals) but will check it out later. (I'm developing my own gamedev related... stuff so I'm unlikely to be a user but looks like it might finally be something a new user can pick up right away and just start making a game in D) For now all criticism I can give is that http://dash.circularstudios.com/v1.0/docs is completely useless with NoScript. At least put a warning for NoScript users.
Re: OpenGL Examples in D and a birth of a New Initiative
On Monday, 19 May 2014 at 20:44:59 UTC, Andrej Mitrovic via Digitalmars-d-announce wrote: On 5/19/14, Colden Cullen via Digitalmars-d-announce digitalmars-d-announce@puremagic.com wrote: This is such a great effort to see! I'm liking the enthusiasm! Btw, I'm currently porting the Box2D physics engine to D. I've already ported Chipmunk a while ago, but Box2D has its own benefits. E.g. it has continuous collision detection which allows bullet-style physics without worry about physical shapes disappearing from the screen. Box2D is also a C++ library, whereas Chipmunk is a C library. I'm close to being done. I have some debugging to do and the complete test-suite is almost entirely ported. Box2D would be awesome. I'm about to start a project that would greatly benefit from good 2D physics (I used simple AABB till now simply because physics is too much of a PITA) How do you port 20kloc in 2 days? D:YAML took me months (although it was python w/ some dynamic classes)
Re: OpenGL Examples in D and a birth of a New Initiative
On Monday, 19 May 2014 at 21:10:02 UTC, Colden Cullen wrote: On Monday, 19 May 2014 at 21:08:25 UTC, Kiith-Sa wrote: Box2D would be awesome. I'm about to start a project that would greatly benefit from good 2D physics (I used simple AABB till now simply because physics is too much of a PITA) How do you port 20kloc in 2 days? D:YAML took me months (although it was python w/ some dynamic classes) Oh you made D:YAML? I personally would like to thank you for providing us with an awesome library which we use for all non-art data loading. It's been really good to us. Is performance not a problem so far? I did avoid unnecessary allocations but it still does use the GC quite a bit (I plan to eventually change that and add some other optimizations but I'd like std.allocator to be in phobos first and I didn't find it too slow for my own projects yet).
Re: OpenGL Examples in D and a birth of a New Initiative
On Friday, 16 May 2014 at 13:53:07 UTC, Andrej Mitrovic via Digitalmars-d-announce wrote: On 5/14/14, Andrej Mitrovic andrej.mitrov...@gmail.com wrote: I am starting an initiative for everyone interested in D game development by creating the github organization d-gamedev-team[1]. Just ported the imgui library to D. It's a minimal OpenGL GUI library, useful for things like tweaking parameters. Have a look here (screenshot included): https://github.com/d-gamedev-team/dimgui http://code.dlang.org/packages/dimgui This is pretty awesome - don't need to write my own anymore. How does it handle fonts? Does it depend on FreeType or something like that?
Re: 10 Years of Derelict
On Friday, 16 May 2014 at 07:43:06 UTC, ponce wrote: On Thursday, 15 May 2014 at 15:02:33 UTC, Mike Parker wrote: I managed to let this little anniversary slip by me. My first post in the old Derelict forum at DSource[1] is dated May 6, 2004, my initial commit to svn[2] was May 7, and my announcement in the newsgroup[3] was on May 8. My attention to the project has waxed and waned, but I'm still puttering along. I expect to continue for the forseeable future. There have been a number of contributors over the years who have helped out in porting to Linux and Mac, fixing bugs, and keeping the bindings up to date. It's been very much a community project, which has made it more enjoyable to work on. It helps that it isn't difficult to maintain :) Maybe before the next decade goes by I'll actually finish a game in D, which is the reason I started Derelict in the first place. For those who don't know, the current iteration of Derelict can be found at the DerelictOrg group at github[4]. I've still got work to do on it (ahem, documentation), but it's coming along. [1] http://www.dsource.org/forums/viewtopic.php?t=105 [2] http://www.dsource.org/projects/derelict/changeset/5/ [3] http://forum.dlang.org/thread/c7hl51$2k4u$1...@digitaldaemon.com [4] https://github.com/DerelictOrg Thanks for that long dedication! Using it since 7 years :) I probably wouldn't have stucked with D if it weren't for Derelict, and I know other people who wouldn't have either. Same here. It'd just be good for it to stabilize so we can write tutorials for it without them getting out of date (yeah, the APIs are the same, but Derelict itself keeps changing).
Re: Livestreaming DConf?
On Friday, 9 May 2014 at 19:48:20 UTC, Andrei Alexandrescu wrote: Hi folks, We at Facebook are very excited about the upcoming DConf 2014. In fact, so excited we're considering livestreaming the event for the benefit of the many of us who can't make it to Menlo Park, CA. Livestreaming entails additional costs so we're trying to assess the size of the online audience. Please follow up here and on twitter: https://twitter.com/D_Programming/status/464854296001933312 Thanks, Andrei Definitely support the idea and would watch.
Re: Tkd - Cross platform GUI toolkit based on Tcl/Tk
On Monday, 5 May 2014 at 08:58:34 UTC, Gary Willoughby wrote: On Sunday, 4 May 2014 at 19:19:57 UTC, Nick Sabalausky wrote: -Jsource/example/media: Use stringImportPaths to specify import paths in a compiler independent way Error: multiple definition of tcl_38_307: _Tcl_Main and Tcl_Main: _Tcl_Main These errors should now be fixed in Tkd v1.0.1-beta. I don't have the time to use this right now, but I will need a working _portable_ GUI framework in a near-future project, so I just want to say that this is awesome. BTW, this is probably not a good idea in near future but it I think it would be good to have a builtin Tkinter equivalent for D. Even if it's not completely phobos-like (Tkinter is not entirely pythonic either), having a basic GUI framework ready to go without any extra setup is a huge advantage.