Re: Biology nerds needed in a D project!

2019-05-23 Thread Alex via Digitalmars-d-announce

On Thursday, 23 May 2019 at 23:17:08 UTC, Murilo wrote:
Guys I'm trying to make a program that simulates a neuron which 
behaves like the Physarum polycephalum so it will be able to 
develop intelligence. I'm making it totally in the D 
programming language. I will need help from biology nerds. If 
you want to participate you can contact me:

1- on my GitHub: https://github.com/MuriloMir
or
2- via e-mail: murilomirand...@hotmail.com
or
3- via the Dlang facebook group: 
https://www.facebook.com/groups/662119670846705/

or
4- on my twitter: https://twitter.com/MuriloMN0


It doesn't matter how you model a neuron. Whatever sigmoid 
function you use will end up converging to the same result. All 
neurons function in the same way, and that is as a switch. This 
is why you can use all kinds of stuff for switches and it work.


It seems that as long as they mimic a step function then it will 
work.


I'd suggest you design your algorithms around using a generic 
neuron and then you can play around with specific implementations.


Re: Visual D 0.49.0 released

2019-04-21 Thread Alex via Digitalmars-d-announce

On Sunday, 7 April 2019 at 19:41:43 UTC, Rainer Schuetze wrote:

Hello,

the new release of Visual D has just been uploaded. Some major 
improvements of 0.49.0:


* support for Visual Studio 2019
* parallel compilation supported by VC projects
* catch up with recent language changes
* new "Language" configuration page for 
-transition=/-preview=/-revert=

options

See 
http://rainers.github.io/visuald/visuald/VersionHistory.html 
for the full list of changes.


Visual D is a Visual Studio extension that adds D language 
support to VS2008-2019. It is written in D, its source code can 
be found on github: 
https://github.com/D-Programming-Language/visuald, pull 
requests welcome.


The installer can be found at 
http://rainers.github.io/visuald/visuald/StartPage.html


Rainer


Thanks, do you know of any reason to upgrade to VS 2019? Does VD 
make any use of it?


Gillespie algorithm

2019-02-05 Thread Alex via Digitalmars-d-announce
Doing some physical simulations I could abstract the Gillespie 
algorithm, see


https://code.dlang.org/packages/gillespied

which may be useful.

The number of algorithms able to model physical (continuous) time 
during an ongoing (reaction) process is rather limited. The 
announced algorithm is known to provide this feature. There are 
very much manifestations and improvements of the original 
Gillespie. In general, the improvements try to improve the speed 
of the algorithm either via

- faster timing generation
- faster next reaction look up
- approximating the output by assumptions

Compared to the standard Gillespie algorithm two enhancements 
were implemented:
- for the case, reaction propensities are known, interarrival 
timings do not necessarily depend on a random number and its 
logarithm. This makes each time query faster.
- If the governing simulation can handle non-nogc algorithm 
instantiation, a dedicated working array can be handled inside 
the algorithm. This provides faster next reaction search for all 
operations.


All issues are of course welcome and will be tackled in my spare 
time. I hope, for this library, many further improvements, and 
applications could be found in future.


Re: a van Emde Boas tree

2019-02-05 Thread Alex via Digitalmars-d-announce
On Tuesday, 5 February 2019 at 16:04:03 UTC, Petar Kirov 
[ZombineDev] wrote:

On Tuesday, 5 February 2019 at 15:47:30 UTC, Dejan Lekic wrote:

On Tuesday, 5 February 2019 at 15:28:04 UTC, Alex wrote:

Hi all,
my van Emde Boas tree finally reached an announceable state, 
at version 0.12.0.


vEB tree is an interesting data structure. Where is the 
implementation? - You did not provide any links...


Most likely the repo is this one: 
https://github.com/Sandman83/vebtree


Yes... sorry. Too deep in the code...
https://code.dlang.org/packages/vebtree


a van Emde Boas tree

2019-02-05 Thread Alex via Digitalmars-d-announce

Hi all,
my van Emde Boas tree finally reached an announceable state, at 
version 0.12.0.


It operates on a closed universe, defined on construction.

After that, the tree operates on unique key up to a certain 
capacity, which is at least as large as the universe size.


All operations including insertion, removing, look up and next 
neighbor search are O(log(log(U)). min and max lookup are O(1).


Some graphics are included on the front page for performance 
comparison with existent libraries.


I relicensed the package to BSL-1.0 and moved it on github, so 
the documentation should work properly now.


All tickets are welcome of course and will be managed in my spare 
time.


Re: We're looking for a Software Developer! (D language)

2018-01-17 Thread Alex Brown via Digitalmars-d-announce
From my own experience, I strongly recommend that you check out 
these guys https://3atdev.com . They have rich experience 
building brands. So I'm 100% positive they'll develop a unique 
product that represents your brand in the best light.


Re: We're looking for a Software Developer! (D language)

2017-11-28 Thread Alex Brown via Digitalmars-d-announce
If you are looking for a cost effective solution, you may want to 
consider outsourcing. This article may be pretty informative for 
you - 
https://diceus.com/why-you-should-open-outsourcing-centers-in-ukraine-nowadays/ . If there are some functions which your business cannot complete effectively and or professionally, you'll often save money and increase quality by outsourcing.

Hope you find it useful!


Re: We're looking for a Software Developer! (D language)

2017-11-28 Thread Alex via Digitalmars-d-announce

hi there


Re: Meet our new scholarship recipient, Alexandru Jercaianu

2017-10-02 Thread Alex Jercaianu via Digitalmars-d-announce

On Monday, 2 October 2017 at 17:17:18 UTC, Suliman wrote:
On Monday, 2 October 2017 at 17:04:30 UTC, Andrei Alexandrescu 
wrote:
Hello everyone, it is my pleasure to announce that Alexandru 
Jercaianu, a starting MSc student at University "Politehnica" 
Bucharest, is recipient of our scholarship.


Alex is up and running working on his bootcamp tasks. 
Currently he is attempting unsuccessfully to post in our 
general group :o).


Please join me in welcoming Alexandru!


Andrei


Welcome Alexandru!


Thanks!
Looking forward to being part of the D community :)

Alex


Re: A ready to use Vulkan triangle example for D

2016-05-29 Thread Alex Parrill via Digitalmars-d-announce

On Sunday, 29 May 2016 at 00:42:56 UTC, maik klein wrote:

On Sunday, 29 May 2016 at 00:37:54 UTC, Alex Parrill wrote:

On Saturday, 28 May 2016 at 19:32:58 UTC, maik klein wrote:
Btw does this even work? I think the struct initializers have 
to be


Foo foo = { someVar: 1 };

`:` instead of a `=`

I didn't do this because I actually got autocompletion for  
`vertexInputStateCreateInfo.` and that meant less typing for 
me.


No, its equals. In C it's a colon, which is a tad confusing.


https://dpaste.dzfl.pl/bd29c970050a


Gah, I got them backwards. Colon in D, equals in C.

Could have sworn I checked before I posted that...


Re: A ready to use Vulkan triangle example for D

2016-05-28 Thread Alex Parrill via Digitalmars-d-announce

On Saturday, 28 May 2016 at 10:58:05 UTC, maik klein wrote:


derelict-vulcan only works on windows, dvulkan doesn't have the 
platform dependend surface extensions for xlib, xcb, w32 and 
wayland. Without them Vulkan is unusable for me.


I really don't care what I use, I just wanted something that 
works.


Platform extension support will be in the next release of 
d-vulkan. It doesn't include platform extensions now because I 
wanted to find a way to implement it without tying d-vulkan to a 
specific set of bindings, though I can't seem to find a good 
solution unfortunately... I personally use the git version of 
GLFW, which handles the platform-dependent surface handling for 
me.


As for the demo itself... It might help explain things more if 
the separate stages (instance creation, device creation, setting 
up shaders, etc) were split into their own functions, instead of 
stuffing everything into `main`.


Struct initializers are also useful when dealing with Vulkan info 
structs, since you don't have to repeat the variable name each 
time. Ex this:


VkPipelineVertexInputStateCreateInfo vertexInputStateCreateInfo = 
{};
vertexInputStateCreateInfo.sType = 
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;

vertexInputStateCreateInfo.vertexBindingDescriptionCount = 1;
vertexInputStateCreateInfo.pVertexBindingDescriptions = 


vertexInputStateCreateInfo.vertexAttributeDescriptionCount = 1;
vertexInputStateCreateInfo.pVertexAttributeDescriptions = 



Can become:

VkPipelineVertexInputStateCreateInfo vertexInputStateCreateInfo = 
{
sType = 
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, // 
also sType is pre-set with erupted or d-derelict

vertexBindingDescriptionCount = 1,
pVertexBindingDescriptions = ,
vertexAttributeDescriptionCount = 1,
pVertexAttributeDescriptions = ,
};


Re: d-vulkan, automatically generated D bindings for Vulkan

2016-05-21 Thread Alex Parrill via Digitalmars-d-announce

On Saturday, 19 March 2016 at 01:12:08 UTC, Alex Parrill wrote:

https://github.com/ColonelThirtyTwo/dvulkan


I've updated the bindings to Vulkan 1.0.13, and added a few fixes.

Platform support will come in a bit. I'm going to use void* 
pointers for most of the platform-specific types, so you can use 
whatever bindings you want to use with them (whether they are 
full bindings or just one little opaque struct alias to use with, 
say, glfw).


Re: [Blog post] Why and when you should use SoA

2016-03-26 Thread Alex Parrill via Digitalmars-d-announce

On Sunday, 27 March 2016 at 00:42:07 UTC, maik klein wrote:
I think SoA can be faster if you are commonly iterating over a 
section of a dataset, but I don't think that's a common 
occurrence.


This happens in games very often when you use inheritance, your 
objects just will grow really big the more functionality you 
add.


Like for example you just want to move all objects based on 
velocity, so you just care about Position, Velocity. You don't 
have to load anything else into memory.


An entity component system really is just SoA at its core.


You can't have a struct-of-arrays with polymorphic data like game 
objects; the individual objects would have different properties 
and methods.


If you use a Unity-esque component system, you could potentially 
pool each object's component into an array... but then whatever 
component updates you're running likely touch most of the object 
state anyway (ex. the hypothetical PositionComponent would be 
updating both its position and velocity).


Also I forgot to mention: Your "Isn’t SoA premature 
optimization?" section is a textbook YAGNI violation. I might 
have to refactor my web app to support running across multiple 
servers and internationalization when it becomes the Next Big 
Thing, but it more than likely will not become the Next Big 
Thing, so it's not productive for me to add additional complexity 
to "make sure my code scales" (and yes, SoA does add complexity, 
even if you hide it with templates and methods).


Since AoS vs SoA is highly dependent on usage, I'd like to see 
some performance metrics with real-world access patterns instead 
of benchmarks that unrealistically only look at part of the data 
at a time, or use structs that are too small to matter. Of 
course, actually getting those metrics is the hard part...


Re: [Blog post] Why and when you should use SoA

2016-03-26 Thread Alex Parrill via Digitalmars-d-announce

On Friday, 25 March 2016 at 01:07:16 UTC, maik klein wrote:

Link to the blog post: https://maikklein.github.io/post/soa-d/
Link to the reddit discussion: 
https://www.reddit.com/r/programming/comments/4buivf/why_and_when_you_should_use_soa/


I think structs-of-arrays are a lot more situational than you 
make them out to be.


You say, at the end of your article, that "SoA scales much better 
because you can partially access your data without needlessly 
loading unrelevant data into your cache". But most of the time, 
programs access struct fields close together in time (i.e. 
accessing one field of a struct usually means that you will 
access another field shortly). In that case, you've now split 
your data across multiple cache lines; not good.


Your ENetPeer example works against you here; the the 
packetThrottle* variables would be split up into different 
arrays, but they will likely be checked together when throttling 
packets. Though admittedly, it's easy to fix; put fields likely 
to be accessed together in their own struct.


The SoA approach also makes random access more inefficient and 
makes it harder for objects to have identity. Again, your 
ENetPeer example works against you; it's common for servers to 
need to send packets to individual clients rather than 
broadcasting them. With the SoA approach, you end up accessing a 
tiny part of multiple arrays, and load several cache lines 
containing data for ENetPeers that you don't care about (i.e. 
loading irrelevant data).


I think SoA can be faster if you are commonly iterating over a 
section of a dataset, but I don't think that's a common 
occurrence. I definitely think it's unwarranted to conclude that 
SoAs "scale much better" without noting when they scale better, 
especially without benchmarks.


I will admit, though, that the template for making the 
struct-of-arrays is a nice demonstration of D's templates.


d-vulkan, automatically generated D bindings for Vulkan

2016-03-19 Thread Alex Parrill via Digitalmars-d-announce

https://github.com/ColonelThirtyTwo/dvulkan

I know there are a few other bindings for Vulkan around, but I 
didn't see one that generated the bindings from the XML spec, so 
I made d-vulkan. The included vkdgen.py script leverages the spec 
parser included in the Vulkan-Docs repo to generate D bindings 
that can easily be updated with new versions and extensions.


The bindings load all functions using the vkGetInstanceProcAddr 
function; however, it does not provide any way of loading that 
function by default, and you must provide it when loading Vulkan. 
The `with-derelict-loader` dub configuration provides uses 
derelict.util to load the vkGetInstanceProcAddr function, and 
I've added a wiki page demonstrating loading the function using 
GLFW.


This includes bindings for all extensions, except for the 
platform-dependent VK_KHR_*_surface APIs, which require type 
declarations from other projects (like X11) that I didn't want to 
include. The platform-independent VK_KHR_surface extension is 
available, however.


(Currently the Derelict loader only works in Windows because I 
don't know the library names for Vulkan on Linux or OSX; if 
anyone knows them, please tell me, and I'll add them)


Re: d-vulkan, automatically generated D bindings for Vulkan

2016-03-19 Thread Alex Parrill via Digitalmars-d-announce

On Sunday, 20 March 2016 at 00:03:16 UTC, Nicholas Wilson wrote:

On Saturday, 19 March 2016 at 19:37:38 UTC, Alex Parrill wrote:
On Saturday, 19 March 2016 at 12:57:18 UTC, Nicholas Wilson 
wrote:
On Saturday, 19 March 2016 at 01:12:08 UTC, Alex Parrill 
wrote:


Should be doable using appropriate version blocks.



The problem is that I'd have to define my own structs (Xlib 
Display, Xlib Window, etc), which will be incompatible with 
the ones defined in any bindings to those libraries.


You don't. Code in undefined versions need only be 
syntactically valid
not semantically valid. i.e. the types in versions not compiled 
in need not

be declared nor defined.

version(none)
{
xcb_connection_t* con;
}
 will compile fine.


Yes, I know. The issue is, when compiling with the version, where 
does xcb_connection_t come from? If I declare it myself, as 
`struct xcb_connection_t;` in the version block, then that type 
will be different than the xcb_connection_t declared in the XCB 
bindings that the developer is likely using, and thus they will 
be incompatible. If I import a xcb_connection_t from some 
bindings, it ties d-vulkan to those bindings, which I'd rather 
not do.


Re: d-vulkan, automatically generated D bindings for Vulkan

2016-03-19 Thread Alex Parrill via Digitalmars-d-announce

On Saturday, 19 March 2016 at 12:57:18 UTC, Nicholas Wilson wrote:

On Saturday, 19 March 2016 at 01:12:08 UTC, Alex Parrill wrote:

Should be doable using appropriate version blocks.



The problem is that I'd have to define my own structs (Xlib 
Display, Xlib Window, etc), which will be incompatible with the 
ones defined in any bindings to those libraries.


Utah Meetup group

2016-02-02 Thread Alex Herrmann via Digitalmars-d-announce

Hello D programmers,

I'm trying to get a Utah D meetup started, if you're interested, 
let me know here ( 
https://docs.google.com/forms/d/13Y8S0aBntCiEGxiCXyCrPwjdG1h3zRXOxCpyzN95U6s/viewform ), and I'll email everyone who replied in a week or so about the numbers, and the next step if there's a good amount of demand.


Thanks, Alex


Re: Voting for std.experimental.allocator

2015-07-10 Thread Alex Parrill via Digitalmars-d-announce
On Friday, 10 July 2015 at 18:32:04 UTC, Andrei Alexandrescu 
wrote:

On 7/9/15 5:44 PM, Alex Parrill wrote:

Yes, but the mmap allocator on Windows needs to be fixed.


What is the issue with it? I recall I pulled something 
recently. -- Andrei


It leaks. 
http://forum.dlang.org/post/itmcarskypkuospvf...@forum.dlang.org


Re: Voting for std.experimental.allocator

2015-07-09 Thread Alex Parrill via Digitalmars-d-announce

Yes, but the mmap allocator on Windows needs to be fixed.


Re: Travis-CI support for D

2015-06-02 Thread Alex Parrill via Digitalmars-d-announce

On Tuesday, 2 June 2015 at 18:54:14 UTC, Atila Neves wrote:
It doesn't seem to work anymore, even 
http://lint.travis-ci.org/ says I can't use language: d.


Atila



Works for me, though the linter doesn't know about it.



Re: [Mono-D] v2.1.18 Parser/Completion/General fixesimprovements

2014-09-05 Thread Alex via Digitalmars-d-announce

On Friday, 5 September 2014 at 12:15:09 UTC, Bruno Medeiros wrote:

On 05/09/2014 07:32, Jacob Carlborg wrote:
Perhaps I'm nitpicking but an external tools doesn't sound 
like a good
idea. A completely separate library that can be shared among 
tools and

be integrated into an IDE, absolutely yes. But not a tool.


It's like it was said earlier, a library is easier to 
integrate, but only if across the same language (for the code 
the library is written in, and the code the IDE extensions are 
written in).


Well, I spent a (very little though) time getting informed on how 
everything could be done using dcd-server running in the 
background.


1) the communication between dcd-server and dcd-client happens 
via tcp ipc. So extremely easy to implement
2) The currently edited module's text can be piped through that 
IPC channel to not have to query the hardware IO all the time.
3) My completion 'model' allows having individual import paths 
for each edited file, project, super-project aka solution. DCD 
seems not to support this atm(?).
4) D_Parser is heavily woven with all kinds of Mono-D features, 
so just ripping out the completion component and replacing it 
with dcd won't bring anything sustainable, since I'd still had to 
have raw access to all ASTs out there in order to e.g. display a 
'breadcrumb' path bar on the editor's top, the doc outline, 
refactoring features etc. -- An entirely separate Mono-D is 
needed imho which probably only features basic projecting/build 
support as well as dcd bindings.


Did you, Bruno, discarded your customly written completion 
framework in favor of dcd?


Re: LDC 0.14.0 released!

2014-08-26 Thread Alex via Digitalmars-d-announce

On Wednesday, 20 August 2014 at 04:48:02 UTC, Kai Nacke wrote:

On Friday, 15 August 2014 at 15:04:44 UTC, Kai Nacke wrote:

Hi everyone,

LDC 0.14.0, the LLVM-based D compiler, is available for 
download!
This release is based on the 2.065.0 frontend and standard 
library and supports LLVM 3.1-3.4.2 (OS X: 3.2/3.4 only).


As usual, you can find links to the changelog and the binary 
packages over at digitalmars.D.ldc:

http://forum.dlang.org/post/ynlnfdqwkweenkwct...@forum.dlang.org

Regards,
Kai


I managed to get mentioned in LLVM Weekly again. 
(http://llvmweekly.org/issue/33)
LLVM weekly is a newsletter with high attention in the LLVM 
world.


Regards,
Kai


Nice :)


Re: [Mono-D] v2.1.18 Parser/Completion/General fixesimprovements

2014-08-14 Thread Alex via Digitalmars-d-announce

On Thursday, 14 August 2014 at 00:54:07 UTC, Brian Schott wrote:

On Thursday, 14 August 2014 at 00:43:38 UTC, Damian Day wrote:
I'm not sure you'd want to do that. The DParser completion 
engine has a few features that DCD doesn't have. (I'm not 
sure if this is true the other way around)


That's true, but duplicated work and all that.. It would be a 
nice way to battle test DCD and the lexer.


Keep in mind that integrating a lexer/parser written in C# into 
an IDE written in C# is much easier than integrating libdparse 
would be. The same argument applies to Eclipse and Visual 
Studio.


Invoking stuff is easy. I'd rather reimplement the communication 
to the dcd server instead to not get such a bottleneck if you're 
on windows or typing really fast. Executing an entire program for 
each keystroke is a real unsustainable solution, imho.





I'm particularly interested in dscanner integration myself :)


Are you talking about displaying static analysis hints in the 
editor window, or something else?


Yes precisely.


This should be easy. I have Textadept set up to do this and the 
implementation is only a few lines long.


https://github.com/Hackerpilot/TextadeptModules/blob/master/modules/dmd/init.lua#L29-54


This seems rather easy to implement.



Re: [Mono-D] v2.1.18 Parser/Completion/General fixesimprovements

2014-08-14 Thread Alex via Digitalmars-d-announce

On Thursday, 14 August 2014 at 07:07:59 UTC, Alex wrote:
Invoking stuff is easy. I'd rather reimplement the 
communication to the dcd server instead to not get such a 
bottleneck if you're on windows or typing really fast. 
Executing an entire program for each keystroke is a real 
unsustainable solution, imho.


https://github.com/Hackerpilot/DCD/blob/master/client.d#L72

Alright. :-)



[Mono-D] v2.1.18 Parser/Completion/General fixesimprovements

2014-08-13 Thread Alex via Digitalmars-d-announce

Hey everyone,

it's been quite some while ago that I posted a Mono-D release 
announcement on to D.announce :)


You should've noticed that the installation instruction stuff has 
been moved to

the D wiki - http://wiki.dlang.org/Mono-D

There have been several fixes and smaller improvements since the 
last bunch of bug fix releases.

Detailed release notes can be taken from the wiki entry.



Cheers,
Alex


Re: [Mono-D] v2.1.18 Parser/Completion/General fixesimprovements

2014-08-13 Thread Alex via Digitalmars-d-announce

On Wednesday, 13 August 2014 at 14:23:47 UTC, Théo Bueno wrote:

On Wednesday, 13 August 2014 at 14:16:18 UTC, Alex wrote:

Hey everyone,

it's been quite some while ago that I posted a Mono-D release 
announcement on to D.announce :)


You should've noticed that the installation instruction stuff 
has been moved to

the D wiki - http://wiki.dlang.org/Mono-D

There have been several fixes and smaller improvements since 
the last bunch of bug fix releases.

Detailed release notes can be taken from the wiki entry.



Cheers,
Alex


We definetely should promote Mono-D along with Visual D, and 
move

your documentation stuff from the wiki to the website.

Again, thank you for your awesome work :)


Only if I have wiki-like online editing available then :P -- I 
don't want to mess with hardcore html anymore :-/


Re: [Mono-D] v2.1.18 Parser/Completion/General fixesimprovements

2014-08-13 Thread Alex via Digitalmars-d-announce

On Wednesday, 13 August 2014 at 20:47:41 UTC, simendsjo wrote:
Not for me. Doesn't work in firefox either (and I'm pretty sure 
I

haven't visited the wiki ever with firefox).


/me leans back and enjoys the OT

Still not working for me either. But no problem, it's the text 
and the images that count :-P


Re: DConf 2013 Day 3 Talk 4: LDC by David Nadlinger

2013-06-17 Thread Alex Rønne Petersen

Great talk!

Regarding the ci.lycus.org fleet, credit should definitely go to 
Adam Wilson (C# to D talk) and Kelly Wilson (same person who was 
present in the pie chart) too for providing many of the machines 
hooked up to the master node.


The fleet doesn't do a whole lot of work most of the time, so if 
you have a project that


1) has a sane build system;
2) you're willing to respond to build failures on;
3) and is 'significant' enough,

feel free to email me and I'll see what I can do.

(By 'significant' I mean has enough impact to be useful for a 
reasonable amount of D programmers. This is of course pretty 
subjective, but we have to be a bit conservative about how many 
projects we add so that we don't end up having lots of stalled 
builds in the queue.)


Re: Visual D 0.3.36 released - support for Alex Bothe's semantic analysis, LDC and profiling

2013-05-18 Thread alex

On Friday, 17 May 2013 at 17:39:42 UTC, Rainer Schuetze wrote:



On 15.05.2013 23:19, alex wrote:
On Saturday, 11 May 2013 at 10:39:39 UTC, Rainer Schuetze 
wrote:

Hi,

a new version of Visual D is long overdue, so finally it is 
released.
In addition to the usual fixes of bugs and regressions, the 
major

highlights of this version are

- DParser by Alexander Bothe 
(https://github.com/aBothe/D_Parser, also
used by Mono-D) integrated as an alternative semantic engine 
for
better code completion (use Open Language options from the 
Visual D

menu to access the enable option)


Finally :) -- Hopefully I can find some more time to do more 
pre-compile

time analysis implementation of D code ;)

Oh btw, have you implemented the 
D_Parser.Misc.CompletionOptions? You

can toggle mixin pre-evaluation and other tweaks over there


I just left them at their default, i.e. UFCS is enabled, but 
mixin-support is disabled. Any problem with enabling the latter?


The other options seem unused sofar when grepping for them, 
maybe they are used by Mono-D, but not DParser (the version 
used by the installer doesn't have the HideDeprecatedNodes 
option).


mixin support might be good (but well, it's still and probably 
will ever be basic) -- there are problems with having too many 
mixins in one module, that's why I left it opt-in only. Anyway 
the option might be nice to have somewhere :)




Re: Visual D 0.3.36 released - support for Alex Bothe's semantic analysis, LDC and profiling

2013-05-15 Thread alex

On Saturday, 11 May 2013 at 10:39:39 UTC, Rainer Schuetze wrote:

Hi,

a new version of Visual D is long overdue, so finally it is 
released. In addition to the usual fixes of bugs and 
regressions, the major highlights of this version are


- DParser by Alexander Bothe 
(https://github.com/aBothe/D_Parser, also used by Mono-D) 
integrated as an alternative semantic engine for better code 
completion (use Open Language options from the Visual D menu 
to access the enable option)


Finally :) -- Hopefully I can find some more time to do more 
pre-compile time analysis implementation of D code ;)


Oh btw, have you implemented the D_Parser.Misc.CompletionOptions? 
You can toggle mixin pre-evaluation and other tweaks over there


Re: DUB 0.9.13 released

2013-04-26 Thread alex

On Tuesday, 16 April 2013 at 21:50:10 UTC, Sönke Ludwig wrote:

Changes:

 - Support for a new buildRequirements field to be able to 
specify

   things like Don't treat warnings as errors or Allow use of
   deprecated features

 - A lot of improvements to the VisualD project generator

 - Some important bug fixes


Change log:
  
https://github.com/rejectedsoftware/dub/blob/master/CHANGELOG.md


Download:
  http://registry.vibed.org/download


I want to inform you that Mono-D v0.5.2.4 can open Dub projects 
natively now - no need for creating .dproj files explicitly 
anymore, just opening package.json is required in order to have 
the project there.

It also handles include paths in the most common cases.

Btw, what about nested dependencies? How are they handled in dub? 
Are all sub-packages in the .dub folder read for further 
dependency information?


Great work though!


Re: DUB 0.9.13 released

2013-04-26 Thread alex

On Friday, 26 April 2013 at 20:16:15 UTC, Sönke Ludwig wrote:

Am 26.04.2013 21:37, schrieb alex:


I want to inform you that Mono-D v0.5.2.4 can open Dub 
projects natively
now - no need for creating .dproj files explicitly anymore, 
just opening

package.json is required in order to have the project there.
It also handles include paths in the most common cases.


Cool! I'll try that out tomorrow. Do you execute the dub 
binary to
generate a project file or do you parse the package.json 
directly? If
it helps, it would be relatively easy to add a mode where all 
build
settings for the project, including all of its dependencies, 
are output

to stdout as JSON.


It parses the package.json directly, no .sln or .dproj is 
generated. It runs dub build for building and dub for executing 
the program -- where do I specify run arguments btw?




Btw, what about nested dependencies? How are they handled in 
dub? Are

all sub-packages in the .dub folder read for further dependency
information?


Yes, the ones in .dub, in the system- and user-wide package 
folders,
as well as any package added with dub add-local are scanned 
for


where is the list of packages added with 'add-local' stored at?

matches recursively and their build settings are merged-in 
accordingly.


I think I might open up all the dependency projects as well when 
opening the 'root' package.json - do you think that it's a good 
idea or just distracting the user from the main project?





Great work though!


Thanks, the same must be said about Mono-D! (which is a lot more
complex, of course)


:-)


Re: DUB 0.9.13 released

2013-04-26 Thread alex

On Friday, 26 April 2013 at 20:47:42 UTC, Rory McGuire wrote:
I'd say opening all dependencies is distracting. But being able 
to open

them quickly is really useful.


I think I should create greyed-out references in the 
pseudo-solution which can be enabled and loaded afterwards if 
wanted. Or so..


Mono-D v0.5.1.5 - Bug fixes

2013-03-17 Thread alex

Hi everyone,

Just wanted to announce a further bug fix release.

Nothing *so* important except that it now alters the AST e.g.
when you're at the end of a method body and pressing Return,
it'll increase the body's endlocation which lets the completion
work fine until the complete file gets reparsed after half a
second.

Enjoy it  keep filing issue reports! :)

http://mono-d.alexanderbothe.com/?p=912
https://github.com/aBothe/Mono-D/issues


Re: Mono-D v0.5.1.4 - Bugs 'n' Improvements

2013-03-16 Thread alex

On Friday, 15 March 2013 at 21:07:07 UTC, notna wrote:
This website is a mess. The home still shows v3, following 
the download, you'll reach v4.0 (windows)... which is so ugly 
and buggy.


The latest for windows, which I found in their forum, is:
http://download.xamarin.com/studio/Windows/XamarinStudio-4.0.1.msi


They just don't care about distribution on Linux anymore - there 
is a variety of reasons for this, but anyway I loaded up a custom 
bundle so you aren't forced to use their website (anymore) ;)


Re: Mono-D v0.5.1.4 - Bugs 'n' Improvements

2013-03-15 Thread alex

On Friday, 15 March 2013 at 00:50:57 UTC, Nick Sabalausky wrote:

On Thu, 14 Mar 2013 23:42:04 +0100
alex i...@alexanderbothe.com wrote:

On Thursday, 14 March 2013 at 22:33:38 UTC, Nick Sabalausky 
wrote:

 On Thu, 14 Mar 2013 22:46:43 +0100
 alex i...@alexanderbothe.com wrote:
 
 Nope. You can switch it so some darker schemes. I also 
 switched it to some darker background because it also was 
 too bright for me.


 I couldn't find any settings for that. Where are they?

On Windows, it's Tools - Options - Text Editor - Syntax 
highlighting. Just select an other scheme, close the options 
dlg and you'll see it :)


That's only affecting the text editor, not the rest of the UI.
Ironically, the text editor is one thing that does display just 
fine

with the default settings (aside from being very bright).


Oh noooees. Seriously, the only bright things in the main UI are 
only a menu bar and the solution pad, by default - Imho a 
circumstance which one can survive easily ;-D


Re: Mono-D v0.5.1.4 - Bugs 'n' Improvements

2013-03-15 Thread alex

On Friday, 15 March 2013 at 14:33:06 UTC, Nick Sabalausky wrote:

Even ignoring the disregard my system settings overdose of
white, the UI is still just generally very difficult to read 
due to what

appears to be a (more or less) buggy theme. Note in particular:

1. Invisible menu items.

2. Very-light-grey on white menu items.

3. Generally messed up text on buttons.

4. Overzealous anti-aliasing on the dialog text such as 
C:\Users...
and Always create a backup copy. Not as bad as the first 
three, but

it'll still hurt a guy's eyes after a while.


http://i.imgur.com/nZxJIgO.png

Can't see a problem on my side, literally.


Re: Mono-D v0.5.1.4 - Bugs 'n' Improvements

2013-03-14 Thread alex

On Thursday, 14 March 2013 at 20:47:57 UTC, Andrej Mitrovic wrote:
On 3/14/13, Nick Sabalausky 
seewebsitetocontac...@semitwist.com wrote:

Wikipedia's MonoDevelop page says
Xamarin offers a rebranded version of MonoDevlop 4.0 as 
Xamarin Studio
which now uses platform-specific code in various places to 
enhance the

look  feel. So sounds good :)


Unfortunately they now forcefully bundle the Android SDK, which 
I have

no use for, but have to wait downloading 800MB..


800 Megs? My download was only 31 MB large ;)

Please consider downloading the version from
http://monodevelop.com/download
-- you don't have to register to the Xamarin site then.


Re: Mono-D v0.5.1.4 - Bugs 'n' Improvements

2013-03-14 Thread alex

On Thursday, 14 March 2013 at 21:25:44 UTC, Nick Sabalausky wrote:

On Thu, 14 Mar 2013 21:47:43 +0100
Andrej Mitrovic andrej.mitrov...@gmail.com wrote:

On 3/14/13, Nick Sabalausky 
seewebsitetocontac...@semitwist.com

wrote:
 Wikipedia's MonoDevelop page says
 Xamarin offers a rebranded version of MonoDevlop 4.0 as 
 Xamarin
 Studio which now uses platform-specific code in various 
 places to

 enhance the look  feel. So sounds good :)

Unfortunately they now forcefully bundle the Android SDK, 
which I have

no use for, but have to wait downloading 800MB..


It didn't do that for me. *shrug*

Unfortunately, Xamarin tries to force its own color scheme, and 
only

partially succeeds at it, leaving the program filled with
barely-readable light-on-light text and other text that 
appears
partially-rendered kinda like anti-aliasing gone terribly 
wrong (not
to mention lots of eye-searing plain-white backgrounds). I'm 
not a GTK

fan, but when I get a chance I'll have to try compiling the
plain-vanilla non-Xamarin MonoDevelop if there indeed isn't a 
pre-built

Windows version of it.


Nope. You can switch it so some darker schemes. I also switched 
it to some darker background because it also was too bright for 
me.


Re: Mono-D v0.5.1.4 - Bugs 'n' Improvements

2013-03-14 Thread alex

On Thursday, 14 March 2013 at 22:33:38 UTC, Nick Sabalausky wrote:

On Thu, 14 Mar 2013 22:46:43 +0100
alex i...@alexanderbothe.com wrote:


Nope. You can switch it so some darker schemes. I also 
switched it to some darker background because it also was too 
bright for me.


I couldn't find any settings for that. Where are they?


On Windows, it's Tools - Options - Text Editor - Syntax 
highlighting. Just select an other scheme, close the options dlg 
and you'll see it :)


Re: Unmanaged - a D framework on github

2013-03-13 Thread alex

On Wednesday, 13 March 2013 at 16:20:08 UTC, D-ratiseur wrote:

Hello, I'd like to introduce the Unmanaged framework.
It's a OOP library, strongly inspired by the Delphi/Pascal RTL.

Its main concept is to bypass the GC. From this statement, the 
library feaures:

- main unmanaged object and memory routines
- a parameterized list
- an ownership system (used to automate the destroying of 
object)

- a parentship system
- a serialization system...
- etc work in progress.

This library is developped in the same time I learn D, but 
comming from Delphi, it's inspired by its class system  (but 
it's not a copy at all).
Unmanaged is tested under win32 an linux64. Basic build scripts 
are provided for both systems and code review are welcome.


you can track the project on github:

https://github.com/BBasile/Unmanaged

Hey.


Pascal case identifiers 3 - Looks great!


Mono-D v0.5.1.4 - Bugs 'n' Improvements

2013-03-13 Thread alex

Hi everyone,

I've recently finished a couple of bug fixes and smaller
improvements which should make Mono-D an even better IDE.

And please, if you experience (and I'm sure you will) bugs or
smaller (not only, but preferably completion) annoyances, do spam
the issue board or the blog with bug fix requests!

- If there's a library construct that's not supported yet, please
report it, because I don't really have the time to find out stuff
and my coding in D mostly happens w/o huge template constructs.

http://mono-d.alexanderbothe.com/?p=909
https://github.com/aBothe/Mono-D/issues


Re: Mono-D v0.5.1.2 - Completion/Parameter insight improvements

2013-02-25 Thread alex

On Monday, 25 February 2013 at 08:22:04 UTC, Sönke Ludwig wrote:
Looking good! But funny to see how Xamarin now also thinks that 
iTunes
is a good role model for an IDE :D But well, it works and looks 
clean
here, I just found it funny when XCode did the same thing back 
then.


Well, I like the new design - mainly because the entire tool bar 
trash disappeared and the editor/completion stuff has been 
improved a lot :)




I now get an error from dmd that a filename or extension is too 
long (I
*think* it worked with MD 3.5 and the previous Mono-D). Passing 
the same

command line that is printed in the build output window as a
@responsefile to dmd works, but putting it directly as a 
command line is
too long for cmd.exe to handle. I couldn't get the original 
error
message to reproduce, though. I'll file a bug report later, 
need to make

a repo case.

Original error message: Erstellen fehlgeschlagen. Der Dateiname 
oder die

Erweiterung ist zu lang


I had this error too - but not in Mono-D/Xamarin Studio, just 
when actually trying to build my relatively small  self-built 
framework via console.. currently dunno how to handle this


Re: Mono-D v0.5.1.2 - Completion/Parameter insight improvements

2013-02-25 Thread alex

On Monday, 25 February 2013 at 08:54:00 UTC, Jacob Carlborg wrote:

Did you happened to find that deadlock issue?


Which one?

I've fixed a such an issue a month ago - the one I wrote about in 
the blog post isn't a deadlock, it's just an infinite 
loop..hopefully I'll get another chance to reproduce it


Re: Mono-D v0.5.1.2 - Completion/Parameter insight improvements

2013-02-25 Thread alex

On Monday, 25 February 2013 at 15:13:29 UTC, Jacob Carlborg wrote:

On 2013-02-25 15:42, alex wrote:


Which one?


I was referring to this post:

http://forum.dlang.org/thread/tdmiqlxzbroktmcrv...@forum.dlang.org#post-rdzfcgypxusahrhwelcu:40forum.dlang.org


Yep, that's the one I fixed recently.


Re: Mono-D v0.5.1.2 - Completion/Parameter insight improvements

2013-02-25 Thread alex

On Monday, 25 February 2013 at 15:51:14 UTC, Jacob Carlborg wrote:

On 2013-02-25 16:25, alex wrote:


Yep, that's the one I fixed recently.


Aha, cool. I'll have to give it a try. BTW, is the Xamarin 
Studio IDE free?


Yes. And I hope it'll remain free :)


Re: Mono-D v0.5.1.2 - Completion/Parameter insight improvements

2013-02-25 Thread alex

On Monday, 25 February 2013 at 22:02:13 UTC, F i L wrote:

alex wrote:
Do you know a relatively consistent way of building MD 4.0 
from scratch and having it 'installed' on one's machine, so 
with a launcher on the desktop?


I don't know, but MonoDevelop 4.0 was just on the Arch Repos 
yesterday :)


Gotta hand it to the MD devs, they really did an excellent job 
with MD 4.0

The UI is slick and straight-forward
The C# code-completion is much better
The new Sublime-inspired colors are completely sexy
And overall, the performance feels improved in every way.

Mono-D is running good so far! Thanks for your work.


Yep, I'm also glad it's gotten a new UI that feels more modern. 
Can't even await the first bug fix release that shall come up in 
a couple of days :)


Re: Mono-D v0.4.9.9 Bug fixes

2013-02-11 Thread alex
On Monday, 11 February 2013 at 09:07:59 UTC, Johannes Pfau 
wrote:

Am Mon, 11 Feb 2013 03:25:25 +0100
schrieb alex i...@alexanderbothe.com:


Hi everyone,

Just released another bunch of bug fixes  solved issues
http://mono-d.alexanderbothe.com/?p=840

May I ask you how long you have to wait for phobos stuff to 
pop

up in the completion list after you launched Mono-D?
I've just installed a non-virtual Mint and had to experience 
wait
very long until stuff like std showed up.. but here on my 
Windows

machine, it just takes ~3 seconds to parse everything + UFCS
preparation, so at least as half as long as it takes on the 
Linux

installation..wth?


~20 seconds here on fedora 17 with ufcs.


I just found out: It's not the parser, it's probably a deadlock -
though I don't know why it's actually working under .Net then..
But okay, I've got a trace, I'll try to fix it - and I've got a
0.5 version then.


Mono-D v0.4.9.9 Bug fixes

2013-02-10 Thread alex

Hi everyone,

Just released another bunch of bug fixes  solved issues
http://mono-d.alexanderbothe.com/?p=840

May I ask you how long you have to wait for phobos stuff to pop
up in the completion list after you launched Mono-D?
I've just installed a non-virtual Mint and had to experience wait
very long until stuff like std showed up.. but here on my Windows
machine, it just takes ~3 seconds to parse everything + UFCS
preparation, so at least as half as long as it takes on the Linux
installation..wth?


I've compiled all the stuff manually to check where some
fundamental reasons are located for this - it ran faster (but
still not fast enough) after I disabled multi-threading! Whereas
on Windows, I actually established a multi-threaded environment
for all the analysis tasks!? -- Mad stuff.
What's really interesting is that it takes about 170-200 ms to
parse std.datetime on both platforms - so not really different at
all. Again, mad stuff.  Anyway I've always thought everything
would be fine with the analysis performance - even on my small
Netbook rig from 2011 that is driven by a tiny 1.66 GHz Atom CPU
with Win7 on it only takes 5 seconds for everything - even less
than Mono takes for parsing phobos with 2(!) threads..
Still troubleshooting so far..

Oh, and please keep reporting issues - just raging silently and
immediately uninstalling the addin isn't making it better at all!
https://github.com/aBothe/Mono-D/issues


Re: Mono-D v0.4.9.9 Bug fixes

2013-02-10 Thread alex

On Monday, 11 February 2013 at 03:18:41 UTC, F i L wrote:
Yeah it takes probably 20-40 seconds on my Phenom II X4 920 
(Arch Linux 64). Haven't MonoD on Windows (or Mac) in awhile, 
so I haven't noticed any difference. I think MonoDevelop on 
Windows actually uses MS .NET (not Mono).. could be wrong about 
that, but if it's true, that could be the reason for the slow 
down (Mono is much slower than MS .Net).


Thanks for the update!


I've got to step deeper into this, I guess. Parsing phobos  
druntime  ufcs args in MonoDevelop took 1.8 seconds, a last test 
in D-IDE resulted in 1.7 seconds..awkwardly strange!


Re: Mono-D v0.4.9.5 - Infinite analysis fix + Mixin analysis improvement

2013-01-31 Thread alex

On Wednesday, 30 January 2013 at 10:45:26 UTC, Jacob Carlborg
wrote:

On 2013-01-30 00:28, alex wrote:

Okay, I've uploaded a new version that features a basically 
working

version. There is now a separated mixin insight and expression
evaluation available.
There are still many things left to do though.


I'll give it a try.


I'm currently too tired to start a new thread for announcing
another bug fix release:
http://mono-d.alexanderbothe.com/?p=825


Re: Mono-D v0.4.9.5 - Infinite analysis fix + Mixin analysis improvement

2013-01-29 Thread alex

On Tuesday, 29 January 2013 at 09:42:49 UTC, Timon Gehr wrote:

On 01/29/2013 03:14 AM, alex wrote:

On Tuesday, 29 January 2013 at 00:48:24 UTC, F i L wrote:

...

http://mono-d.alexanderbothe.com/?attachment_id=817
My progress so far. Lots of internals to manage though. The
execute-button isn't implemented yet but you can toggle the
Automatically take the mixin at the caret location button.
Concerning things like foo(1,2) - yes, the evaluation engine
directly takes the symbols straight out of its parsed modules. 
So

as you create a method body you'll be able to execute stuff
in-line. But yeah, remember that CTFE isn't implemented yet ;) 
-

Perhaps I'll do/finish it during the next GSoC.
...


Probably you should do JIT using System.Reflection.Emit.


Why not write an entire D# compiler? ;)
(jk, I originally planned to do this right after I've finished
mono-d :D)


Re: Mono-D v0.4.9.5 - Infinite analysis fix + Mixin analysis improvement

2013-01-29 Thread alex

On Tuesday, 29 January 2013 at 08:02:27 UTC, Jacob Carlborg wrote:

...
Yeah, that was s cool. I also liked the code bubbles. 
Instead of having a file as the minimum abstraction unit in the 
IDE/editor it was a function/class/method.


Which can be done in Eclipse by just selecting e.g. a method or 
class in the outline - iirc it'll just show the definition of the 
selected node then, nothing else.


Re: Mono-D v0.4.9.5 - Infinite analysis fix + Mixin analysis improvement

2013-01-28 Thread alex

On Sunday, 27 January 2013 at 15:24:23 UTC, Jacob Carlborg wrote:

On 2013-01-27 13:35, alex wrote:


Well, not displaying the entire module but only displaying
resolved expressions. Dunno how to do this in a proper way - 
only

via tooltips or also in an extra panel? Which would be the most
useful?


If it cannot show the entire module then I think a tooltip 
would be best suited.



Btw, since I'm not that involved in D's magic I definitely
haven't planned such extensive pre-compilation :D


It can be extremely helpful to see how a template/string mixin 
is expanded when debugging.


It can also be fun to see how the compiler behaves internally, 
i.e. scope-statements are lowered to try/catch/finally.


Any D IDE has quite a lot of expectations to live up since it 
most certainly will be compared with Descent.


K..Created an extra panel, and the actual mixin evaluation is 
working, too. But now there are some last adjustments required to 
have the entire mechanism as few annoying and 
performance-reducing as possible.


Re: Mono-D v0.4.9.5 - Infinite analysis fix + Mixin analysis improvement

2013-01-28 Thread alex

On Sunday, 27 January 2013 at 23:14:23 UTC, F i L wrote:

alex wrote:

Morning D folks,

Implemented some new features concerning pre-compile time mixin
analysis and expression evaluation:

...


The new update seems very fast and stable. Trying the new
features, Thanks!


And if not, you know the routine :)


Re: Mono-D v0.4.9.5 - Infinite analysis fix + Mixin analysis improvement

2013-01-28 Thread alex

On Monday, 28 January 2013 at 20:20:42 UTC, Jacob Carlborg wrote:

On 2013-01-28 13:32, alex wrote:

K..Created an extra panel, and the actual mixin evaluation is 
working,
too. But now there are some last adjustments required to have 
the entire

mechanism as few annoying and performance-reducing as possible.


Cool, I guess it's time to give Mono-D another try.


http://i.imgur.com/3i5R4Mn.png?1

A first shot - I guess in cases of having template parameters, 
stuff should get 'expanded' to the final type, right? Well then I 
still have to work on it. Anyway it also works for template 
mixins and mixin statements. You just move the caret into a 
mixin, wait half a sec and then get the evaluated string 
displayed in a halfway good style.
Ah, regarding the style..I also have to optimize it again - never 
touched any 'pretty printing' of entire ASTs before ;)


Re: Mono-D v0.4.9.5 - Infinite analysis fix + Mixin analysis improvement

2013-01-28 Thread alex

On Monday, 28 January 2013 at 21:14:07 UTC, F i L wrote:

alex wrote:

http://i.imgur.com/3i5R4Mn.png?1

A first shot - I guess in cases of having template parameters, 
stuff should get 'expanded' to the final type, right? Well 
then I still have to work on it. Anyway it also works for 
template mixins and mixin statements. You just move the caret 
into a mixin, wait half a sec and then get the evaluated 
string displayed in a halfway good style.
Ah, regarding the style..I also have to optimize it again - 
never touched any 'pretty printing' of entire ASTs before ;)


Now that's impressive. Can't wait to see exactly what will come 
of the expression evaluation :D


Yeah I just named it Expression evaluation - dunno why, just 
thought that it could be used in a more general way than 'only' 
for mixin insight.


Should I do an extra input box where you could type in 
expressions and other things that could be evaluated? Just 
thinking of a prototype of an interactive D script console or 
so.. :)


Re: Mono-D v0.4.9.5 - Infinite analysis fix + Mixin analysis improvement

2013-01-28 Thread alex

On Tuesday, 29 January 2013 at 00:48:24 UTC, F i L wrote:

...
That sounds very useful. It would be awesome if you could 
evaluate the returned value of functions that already exist in 
your program, or (like your picture shows) write simple test 
functions to evaluate. Of course not all functions will work, 
but It would be great in some areas. So, just to be clear, say 
you have the following function in your project:


int foo(int x, int y)
{
return x * y + 5;
}

Then in the expression command line, you just type:

foo(1, 2)

Hit Enter, and you get a message: 7. You could also write 
larger test functions in the Expression Evaluation body (like 
in your screenshot) which could do more complicated stuff 
(still limited of course).


http://mono-d.alexanderbothe.com/?attachment_id=817
My progress so far. Lots of internals to manage though. The
execute-button isn't implemented yet but you can toggle the
Automatically take the mixin at the caret location button.
Concerning things like foo(1,2) - yes, the evaluation engine
directly takes the symbols straight out of its parsed modules. So
as you create a method body you'll be able to execute stuff
in-line. But yeah, remember that CTFE isn't implemented yet ;) -
Perhaps I'll do/finish it during the next GSoC.

Haha, as a systematical performance pre-improvement I could
directly redirect some phobos methods like sqrt() to the .net one
- which would save huge amounts of time then.

You just gave me an awesome idea though. I know this would be a 
ton of work (I'm not making a feature request here), but how 
realistic would it be with your system to do a side-by-side 
expression evaluation with example data (where applicable)? :D


Meaning, imagine your screen looks like:

CODE   | EXAMPLE RESULTS
   
   |
int foo(int x, int y)  | params: (2, 3) // editable
{  |
return x * y + 5   | returns: 11// not-editable
}  |
   |

That would simply amazing! I don't expect you to make that, 
lol, only want to know if it's possible (or foreseeable) with 
your expression evaluation engine. Is it?


Side-by-side? This could be your contribution then :P
I actually did watch this one video where that one guy just
edited some javascript in his uber-editor and the WebGL
animations reacted on his coding in pseudo-realtime in the
browser :D


Mono-D v0.4.9.5 - Infinite analysis fix + Mixin analysis improvement

2013-01-27 Thread alex

Morning D folks,

Implemented some new features concerning pre-compile time mixin
analysis and expression evaluation:

http://mono-d.alexanderbothe.com/?p=814 (Screenshot included)

I'd furthermore suggest that the prospective generational GC (not
the current one, I mean the fictional that actually can collect
nearly everything wisely! ;)) also supports weak references -
because they're imho essential for a nice caching flow:

In this version of mono-d I used a weak-keyed dictionary to store
mixin expression results until the owner module is free'd and
probably reparsed. This allows me to be more lazy regarding the
deletion of those cache entries after I reparsed e.g. a module +
mem leaking is prevented + less muddy code in the module update
routines! :)


Cheers,
Alex


Re: Mono-D v0.4.9.5 - Infinite analysis fix + Mixin analysis improvement

2013-01-27 Thread alex

On Sunday, 27 January 2013 at 11:31:58 UTC, Dicebot wrote:

Gets better and better!

Makes me wonder though: if this works, may be it is possible to 
provide a context helper with mixin resulting code if all it 
parameters are already defined? Similar to C macro expansion 
helper in Eclipse.


So like.. you click somewhere in your document, have an extra 
panel in which you can enter an expression (even a CTFE call 
later on), and get your expressions evaluated? Sure - even stuff 
like template mixins or similar..no problem :)
Uhm, even pre-defining variable contents shouldn't be a problem - 
then you would have a D math-script interpreter :D


Re: Mono-D v0.4.9 - Rough formatting capability

2013-01-26 Thread alex
On Saturday, 26 January 2013 at 08:22:39 UTC, Rainer Schuetze 
wrote:



On 25.01.2013 21:34, Jacob Carlborg wrote:

On 2013-01-25 20:00, alex wrote:

I already suggested Rainer to make a native/non-native 
interface between
VisualD and D_Parser - this will probably happen via COM or 
so.. and I
dunno anything about that technique. I just can make sure 
that the
parser library is fully stand-alone, only depending on .net 
internals.

Let's see :)


It should provide an C interface, then it can be connected to 
anything.




COM is the natural choice when interfacing native code on 
Windows with C#. On other platforms it might be different.


The semantic engine in Visual D is separated into another 
process and communicates with the IDE plugin through a number 
of commands, just using this interface: 
https://github.com/rainers/visuald/blob/master/vdc/ivdserver.d 
. This can easily be mapped to C calls.


There's also an implementation of that interface using D_Parser 
(https://github.com/rainers/visuald/tree/master/vdc/abothe), 
but it isn't complete yet.


Concerning completion server...why not a completion server? :D - 
I mean, it'll be launched as soon as VisualD launches..and then 
you can pipe-through commands etc. to interact like it's done the 
mspdbsrv already. That's imho even easier than using COM + can be 
driven even as a web server..which would be a real dream then!


Re: Mono-D v0.4.9 - Rough formatting capability

2013-01-26 Thread alex

On Saturday, 26 January 2013 at 11:46:27 UTC, alex wrote:
Concerning completion server...why not a completion server? :D 
- I mean, it'll be launched as soon as VisualD launches..and 
then you can pipe-through commands etc. to interact like it's 
done the mspdbsrv already. That's imho even easier than using 
COM + can be driven even as a web server..which would be a real 
dream then!


Some additional thoughts:

All you need to specify at startup are include paths and some 
completion options or so.
Then while editing, you either pass changes incrementally or push 
the entire document content to the server. The server parses that 
document then and updates the internal parse cache.
These parse caches will be used for completion then. As you 
request e.g. the completion window to open or some tooltip info, 
you just pass the module name, the caret location and a command 
to the server - it'll answer then with all the items that shall 
be shown in the completion list or in the tooltip box.


Furthermore, stuff like indenting and formatting could be 
interfaced, too - just push the document content, and it'll pass 
you back all changes to do OR the complete document.


What do you think about this idea?


Re: Mono-D v0.4.9 - Rough formatting capability

2013-01-26 Thread alex
On Saturday, 26 January 2013 at 12:28:11 UTC, Rainer Schuetze 
wrote:



On 26.01.2013 13:09, alex wrote:

On Saturday, 26 January 2013 at 11:46:27 UTC, alex wrote:
Concerning completion server...why not a completion server? 
:D - I
mean, it'll be launched as soon as VisualD launches..and then 
you can
pipe-through commands etc. to interact like it's done the 
mspdbsrv
already. That's imho even easier than using COM + can be 
driven even

as a web server..which would be a real dream then!


Some additional thoughts:

All you need to specify at startup are include paths and some 
completion

options or so.
Then while editing, you either pass changes incrementally or 
push the
entire document content to the server. The server parses that 
document

then and updates the internal parse cache.
These parse caches will be used for completion then. As you 
request e.g.
the completion window to open or some tooltip info, you just 
pass the
module name, the caret location and a command to the server - 
it'll
answer then with all the items that shall be shown in the 
completion

list or in the tooltip box.

Furthermore, stuff like indenting and formatting could be 
interfaced,
too - just push the document content, and it'll pass you back 
all

changes to do OR the complete document.

What do you think about this idea?


That's actually what the Visual D semantic server process does.


Lol.


Syntax highlighting and indenting are done in the plugin, 
though. These don't need anything more than lexing so far and 
must be fast.


Isn't there any integrated lexing done by the VS editor 
component? MD as well as #develop provide simple syntax 
definitions. But well, semantic type highlighting..yeah, this 
could be an issue - whereas..this process takes only 1 ms or so 
in D-IDE, so this shouldn't be a problem.


Specifying import paths and compile options isn't so easy, 
because you can have different options for different projects 
in the solution, meaning the same file might be even used with 
different settings. That's also one of the points where 
integration of D_Parser is kind of brittle.


This wouldn't be a problem: There already is a strict separation 
of global (phobos, tango, vibe.d) and local (project, 
project-specific include) module sets in the parse cache. As I 
already said, changes to single documents could be passed to a 
document 'mirror' in the completion server immediately.
Wait, the same file might be used with different settings? Hehe, 
there actually are no settings for parsing and code completion. 
Anyway, why should two projects make use of two files? Even if, 
this wouldn't be any reason to turn mad - the AST was just stored 
in two parse caches then, so no problem at all :)


Re: Mono-D v0.4.9 - Rough formatting capability

2013-01-25 Thread alex

On Friday, 25 January 2013 at 13:43:46 UTC, Jacob Carlborg wrote:
I didn't say anything about porting :) I was suggesting you 
integrate the VisualD parser without porting it. That's why I 
suggested the one in VisualD and not the one in Mono-D.


I already suggested Rainer to make a native/non-native interface 
between VisualD and D_Parser - this will probably happen via COM 
or so.. and I dunno anything about that technique. I just can 
make sure that the parser library is fully stand-alone, only 
depending on .net internals. Let's see :)


Re: Mono-D v0.4.9 - Rough formatting capability

2013-01-25 Thread alex

On Friday, 25 January 2013 at 20:34:28 UTC, Jacob Carlborg wrote:

On 2013-01-25 20:00, alex wrote:

I already suggested Rainer to make a native/non-native 
interface between
VisualD and D_Parser - this will probably happen via COM or 
so.. and I
dunno anything about that technique. I just can make sure that 
the
parser library is fully stand-alone, only depending on .net 
internals.

Let's see :)


It should provide an C interface, then it can be connected to 
anything.


Why not wrap dmd's front-end?


Re: Mono-D v0.4.9 - Rough formatting capability

2013-01-22 Thread alex

On Tuesday, 22 January 2013 at 10:26:21 UTC, mist wrote:

On Monday, 21 January 2013 at 21:35:11 UTC, alex wrote:

On Monday, 21 January 2013 at 21:32:38 UTC, F i L wrote:
Thanks Alex, even though I don't use auto-formatting (I never 
did like that).


I use it rarely either - but some others asked whether I could 
do this - and now there it is :)


Lack of auto-formatter was the reason I stopped using Mono-D 
some time ago :) Awesome update, good luck with this!


Uhm..what is an auto-formatter in your eyes? Automatic formatting
when you typed a '}' for instance?
Or just the explicit possibility to let a program format your
code?

I mean, once the code got indented correctly, why should it ever
be passed through a formatter again? Just to see that it's
actually been indented correctly? Hmm..


Re: Mono-D v0.4.9 - Rough formatting capability

2013-01-22 Thread alex

On Tuesday, 22 January 2013 at 15:54:46 UTC, mist wrote:
I always define project code style policies in Eclipse code 
style settings and run auto-format (Ctrl+Shift+F) on new code 
always before commiting to ensure my nasty personal preferences 
have not slipped out of subconscious. It also converts all 
whitespaces consistently to match project settings and 
sometimes I forget to setup tab-space autoreplacement for 
external editors.


In-place formatting is not that important for me.



So that's the exact thing I'm trying to implement: To define an 
IDE- or project-wide formatting policy and let this control the 
code style.

Let's see how far I can do it :)


Mono-D v0.4.9 - Rough formatting capability

2013-01-21 Thread alex

Hi everyone,

No, the entire formatting engine is NOT finished yet. :P
Anyway I've created a good compromise solution between releasing
stuff early and having a fairly nice formatting result:

I just let the indenting engine calculate the indents of all
lines of the code - and fix all the incorrect indents afterwards.
It works quite fast  reliable(?) - I hope it won't throw very
often + you don't have to worry about resetting your code to an
earlier state via [Ctrl+Shift][Z]

Indenting only parts of the code is possible either! - So you
don't have to worry about your entire code getting messed up
probably ;)


More info @ http://mono-d.alexanderbothe.com

Issues: https://github.com/aBothe/Mono-D/issues


Re: Mono-D v0.4.9 - Rough formatting capability

2013-01-21 Thread alex

On Monday, 21 January 2013 at 21:32:38 UTC, F i L wrote:
Thanks Alex, even though I don't use auto-formatting (I never 
did like that).


I use it rarely either - but some others asked whether I could do 
this - and now there it is :)


Re: Mono-D v0.4.8

2013-01-16 Thread alex

On Wednesday, 16 January 2013 at 07:13:01 UTC, timotheecour wrote:

and another bug:
(I've updated to the correct stable version as per your 
instructions, since my last post included). Not sure how to 
reproduce this bug but it just happened after switching back to 
MD (i'm on OSX):


A fatal error has occurred

Details of this error have been automatically sent to Xamarin 
for analysis. MonoDevelop will now close.


System.ArgumentOutOfRangeException: Argument is out of range.
  at MonoDevelop.D.Formatting.Indentation.IndentStack.Push 
(Inside inside, Byte keyword, Int32 lineNr, Int32 nSpaces) 
[0x0] in filename unknown:0


Next time, please dump the upper-most entry of the stack trace 
only ;)


This is fixed now. It'll be part of the next bug-fix release.


Re: Mono-D v0.4.8

2013-01-15 Thread alex

On Saturday, 12 January 2013 at 14:28:46 UTC, alex wrote:

Hi everyone,

Just released a new version - For info, see
http://mono-d.alexanderbothe.com



Cheers,
Alex


Got to bump myself up again. Released a new version - this time
with improved code indentation.


Re: Mono-D v0.4.8

2013-01-15 Thread alex

On Tuesday, 15 January 2013 at 21:38:55 UTC, timotheecour wrote:

On Tuesday, 15 January 2013 at 21:12:21 UTC, alex wrote:

On Saturday, 12 January 2013 at 14:28:46 UTC, alex wrote:

Hi everyone,

Just released a new version - For info, see
http://mono-d.alexanderbothe.com



Cheers,
Alex


Got to bump myself up again. Released a new version - this time
with improved code indentation.


when upgrading to 0.4.8 i get the error below. Then monodevelop
crashes and quits.
so it is now unusable.
Also, can you describe what you mean by with improved code
indentation ? is that code formatting? I've been long hoping 
for

this!
Thanks!


An error has occurred

Error while updating status of command:
MonoDevelop.Ide.Commands.ProjectCommands.Run

System.MissingMethodException: Method not found:
'MonoDevelop.Projects.ProjectConfiguration.get_ParentItem'.


Awesome, again these problems - which MD version do you've got
installed?
3.0.6 stable? Then please switch to the
mono-d.alexanderbothe.com/stableMD repository
3.1.0 beta? Then switch to the mono-d.alexanderbothe.com repo.

If you're having a Mac system and try to use 3.1.1, please
downgrade to 3.0.6 stable in order to use the /stableMD
repository. I promise, everything will work fine then - I've
tested it on Win7 and Mint 13 x86 - It's been launched flawlessly
there.

With code indent I'm not meaning code formatting but the
automated indentation generation after e.g. you've pressed
return and it inserts 3 tabs because you're in a method of a
class of an other class.

@Fil: I haven't changed anything regarding GDB support (yet). I'm
sorry but I get myself desperate too about what the guys from MD
tend to do sometimes. ;)
-- What is linux-vdso.so.1 ?


Mono-D v0.4.7 - Optlink output analysis / Symbol name demangling

2013-01-12 Thread alex

Hi everyone,

Just released a new version - For info, see
http://mono-d.alexanderbothe.com



Cheers,
Alex


Re: Mono-D v0.4.7 - Optlink output analysis / Symbol name demangling

2013-01-12 Thread alex

On Saturday, 12 January 2013 at 17:44:54 UTC, Jacob Carlborg
wrote:

On 2013-01-12 15:28, alex wrote:

Hi everyone,

Just released a new version - For info, see
http://mono-d.alexanderbothe.com


I just tried Mono-D again and I'm having some problems.


https://github.com/aBothe/Mono-D/issues



* Running an application

When I try to run a simple Hello World application it opens a 
new empty terminal, nothing is printed. I also though that 
MonoDevelop would run the application and display its output in 
an internal console view.


Uses xterm (at least on linux) to display stuff in an external
console. Definitely wasn't my idea. There probably is the
possibility to redirect stin/out/err streams into some kind of
internal log or so - but then probably the question will rise up
whether one can pass input to stdin. Haven't tried it out yet -
yes, yet - though Mono-D exists 1.5 years.


* Go to definition and autocompletion

I have no idea how good these features are supposed to be but 
to me they work very inconsistently. I have one project where 
go to definition basically only works for what's in the same 
file. I have another project where it seems to work fine, 
mostly.


That's where D magic vs. my programming ability comes into the
game. I can't and I won't guarantee that both works in all cases
(of course not) - all I can do is to make it run in as many cases
as possible. There might be couple of strange or uncommon (yes,
even common) situations where I haven't thought that these could
ever occur. In such cases, please note them down somewhere and
tell me what's not working as expected in particular.


There is no fancy mixin or template code in these projects.


Did you really expect I had finished implementing CTFE so all
mixins etc could be resolved? Again, please tell me where it's
not working. Since I spend most of my coding time working Mono-D
I don't really have time to manage D projects.
Completion-related issues may get straight to
https://github.com/aBothe/D_Parser please.


A few questions:

* Does Mono-D do autocompletion or go to definition from 
external files like files from Phobos and druntime?


Yes. And it works for me(tm) - whereas I don't have any dimension
of what modules / completion features _advanced_ D users make use
of. I mean, as I said, I can't test everything - I need users to
do this for me :P


* Can Mono-D resolve type inference?


Yes.


I'm using Mac OS X.


This shouldn't be a problem.


Mono-D v0.4.6 - UDA parsing support

2013-01-06 Thread alex
Just finished making the parser analyze UDA syntax flawlessly + 
Slight profiling statistics display support (dmd exclusive, 
unfortunately).


Ah, before I forget it: No, the 'deprecated' attribute syntax à la
[...] void foo() {}
is not supported, only
@... void bar() {}
:-)

http://mono-d.alexanderbothe.com/?p=781

https://github.com/aBothe/Mono-D
https://github.com/aBothe/D_Parser


Re: Mono-D v0.4.6 - UDA parsing support

2013-01-06 Thread alex

On Sunday, 6 January 2013 at 17:15:30 UTC, nazriel wrote:

On Sunday, 6 January 2013 at 17:10:17 UTC, alex wrote:
Just finished making the parser analyze UDA syntax flawlessly 
+ Slight profiling statistics display support (dmd exclusive, 
unfortunately).


Ah, before I forget it: No, the 'deprecated' attribute syntax 
à la

[...] void foo() {}
is not supported, only
@... void bar() {}
:-)

http://mono-d.alexanderbothe.com/?p=781

https://github.com/aBothe/Mono-D
https://github.com/aBothe/D_Parser


By depracated you mean new sytnax for adding messages to 
deprecate blocks introduced by yebblies?


deprecated(Don't use anymoar)
void func() {}?


Oh, no you actually can type
deprecated(Don't do this because!) void oldFoo() {}
now.

With the 'deprecated' attribute syntax I meant this [..] 
attribute syntax, nothing else. :)


Re: Mono-D v0.4.6 - UDA parsing support

2013-01-06 Thread alex

On Sunday, 6 January 2013 at 17:37:05 UTC, Philippe Sigaud wrote:

Oh, no you actually can type
deprecated(Don't do this because!) void oldFoo() {}
now.



You can? Wow, yet another change that was not in the docs? I'm 
becoming

bitter, here.




With the 'deprecated' attribute syntax I meant this [..] 
attribute syntax,

nothing else. :)



OK.

Good job, Alexander.


There should be a dedicated list of changes made to the spec 
sheets. Or even a dedicated repository, book, wiki or whatsoever 
to make all changes purely clear for everyone.


@Philippe: I've found out about this syntax _just_ because there 
were hundreds of errors thrown out while parsing though phobos - 
So in the end, I'm designing the parser more after phobos than 
the actual spec. Mentally insane, but well..it's just another D 
thing.


Re: XING Gruppe D Programming Language - XING group D Programming Language

2013-01-03 Thread alex

On Wednesday, 2 January 2013 at 18:38:08 UTC, notna wrote:

On 02.01.2013 19:24, Chris wrote:

A D-ating site? :-)


:D Hopefully on the way to something like that... then mainly 
for business dating ;)


Ha, cool, thanks for creating this group!


Mono-D v0.4.5

2012-12-24 Thread alex

Hi everyone,

I've just uploaded a new version of Mono-D. This time again 
several bug fixes, improvements..the usual stuff ;)


For a changelog, see the first link to the project blog.


Oh and merry Christmas to each of you - may there be a small 
social leftover besides the entire x-mas commerce we've got to 
experience during these days ;-D



http://mono-d.alexanderbothe.com
https://github.com/aBothe/Mono-D/issues
https://github.com/aBothe/D_Parser/issues


Re: Getting ready for 2.061

2012-12-22 Thread Alex Rønne Petersen

On 22-12-2012 06:11, Jonathan M Davis wrote:

On Friday, December 21, 2012 17:12:47 Andrei Alexandrescu wrote:

We plan to start building a new release on Sunday evening. To do so
(pursuant to the embryonic process we're putting in place), at that time
we'll create a new branch called staging for each of dmd, druntime,
and phobos.

All contributors - over the weekend please ping reviewers on what you
believe are pull requests with a high importance*urgency product. Once
we branch into staging, pull requests will only be merged into master.


https://github.com/D-Programming-Language/dmd/pull/1287

really should be resolved prior to 2.061, or we're going to be introducing a
compiler flag (-di) which we're probably then going to turn around and
deprecate (and making deprecations warn by default instead of giving you an
error will be  _huge_ step forward in our ability to manage deprecations
without breaking people's code).

- Jonathan M Davis



+1 to this.

--
Alex Rønne Petersen
a...@lycus.org
http://lycus.org


Mono-D v0.4.4 Template mixins, completion improvements

2012-11-30 Thread alex

Hi everyone,

I've implemented one of the last missing things regarding code 
completion (except those huge remaining fields in the expression 
evaluation, so correct traitCTFE handling etc.) now.
Though I doubt that everything is interpreted correctly I wrote a 
bunch of unit tests that passed successfully - imho another step 
in the right direction.


Now trying to begin with the code formatter.. but unlike 
installing new completion features this will take longer, I guess 
:)


http://mono-d.alexanderbothe.com
http://d-ide.sourceforge.net

https://github.com/aBothe/Mono-D/issues


Mono-D 0.4.3: Mixins, declaration constraints, static if() analysis

2012-11-22 Thread alex
Imho some really nice improvements concerning the code completion 
ability of Mono-D/D-IDE.


And no, CTFE as well as template mixins are NOT implemented yet ;)

http://mono-d.alexanderbothe.com
https://github.com/aBothe/Mono-D/issues
https://github.com/aBothe/D_Parser/issues

Furthermore, any ideas how to boost up expression evaluation, 
i.e. mixin evaluation performance?
I've made a hashing function which calculates relatively unique 
integer values for each expression - but for now I'm not really 
sure how to dimension an inter-parse caching, so the caching of 
an expression value as long as there are no changes made to 
either the expression itself or some base expression the actual 
expression may depends on.


Also for CTFE, I want to establish excessive caching so I don't 
have to execute the same function with the equal arguments more 
than once.


Not that the mixin evaluation performance is _that_ weak, but 
perhaps for thinking in terms of having CTFE and all the stuff 
implemented soon..


Is dmd caching mixin results when having one evaluated once?


Re: Mono-D 0.4.3: Mixins, declaration constraints, static if() analysis

2012-11-22 Thread alex
On Thursday, 22 November 2012 at 20:16:10 UTC, Jacob Carlborg 
wrote:

On 2012-11-22 20:19, alex wrote:
Imho some really nice improvements concerning the code 
completion

ability of Mono-D/D-IDE.

And no, CTFE as well as template mixins are NOT implemented 
yet ;)


http://mono-d.alexanderbothe.com
https://github.com/aBothe/Mono-D/issues
https://github.com/aBothe/D_Parser/issues


How do I update to the latest version? The main page says:

For MonoDevelop 3.0.5 and custom builds, also see the 
installation page for further download steps!


On the installation page it says:

If you’re using MonoDevelop on Windows/Mac, download the 
latest .mpack file here.


If I click here it links to 
http://mono-d.alexanderbothe.com/?p=591, which basically is the 
main page.


BTW, on Mac OS X the Add-in Manager is located on the 
MonoDevelop menu.


MonoDevelop 3.0.5 just released as stable version, and my site 
hasn't been updated yet - just take the .mpack link I've put in 
on the top of my blog..


Mono-D v0.4.2 Project building fixes

2012-11-15 Thread alex
..and the round goes on with a new bunch of fundamental fixes and 
improvements :)


http://mono-d.alexanderbothe.com
Issues go here https://github.com/aBothe/Mono-D/issues as usual,

and the direct download for all Mac/Windows users that have 
MonoDevelop 3.0.4.7:

http://mono-d.alexanderbothe.com/repo/MonoDevelop.D_0.4.2.0_MD3.0.4.7.mpack


Re: Mono-D v0.4.1.9

2012-11-08 Thread alex
On Wednesday, 7 November 2012 at 12:48:30 UTC, Bruno Medeiros 
wrote:

On 24/08/2012 00:18, alex wrote:

Hi everyone,

Right after the GSoC finished (I'm really sure I passed :)), 
I've just

found more time to improve things drastically:



I also have to extend my congratulations for the work you have 
done. I tried Mono-D several releases ago (before Summmer), and 
even then it was already very good in its semantic 
functionality (autocomplete etc.). It was the only D IDE to 
come anywhere close to what DDT and Descent had in terms of 
semantic functionality (sorry VisualD and others :P ), and even 
more, it actually didn't just come close but actually surpassed 
it significantly!


Thanks!
Hopefully I can release the new 0.4.1.9 version today :)


Mono-D v0.4.1.9

2012-11-08 Thread alex

Between all these discussions about new D language features :)

A new version just released. For any info, see 
http://mono-d.alexanderbothe.com


Issues go here: https://github.com/aBothe/Mono-D/issues

If you've downloaded MonoDevelop from download.monodevelop.com, 
please download the latest addin directly from

http://mono-d.alexanderbothe.com/repo/MonoDevelop.D_0.4.1.9_MD3.0.4.7.mpack



Re: User Defined Attributes

2012-11-06 Thread alex

On Tuesday, 6 November 2012 at 08:55:06 UTC, Sönke Ludwig wrote:

Am 06.11.2012 09:26, schrieb Walter Bright:
On 11/6/2012 12:20 AM, Sönke Ludwig wrote: But shouldn't we 
keep the

syntax closer to normal attributes and other
languages(*)? I see a lot of arguments for doing that, with 
the only
counter-argument that they would be in the same namespace as 
the
built-in attributes (which should not be that bad, as this is 
very low

level language stuff).

(*) i.e. @mytype or @(string) and without the '[]'



We can debate the syntax. I don't have a store set by this 
one. I was
more interested in getting the semantics right. Anyhow, it's 
nice to
have a working prototype to experiment with rather than a 
paper airplane.


Definitely! Thanks a lot for tackling this, to me this seems 
like

something that can get a real killer feature for the language!


@test
void myUnittest()
{

}

Uh yeah, that would be awesome!


Re: Objects in a Templated World

2012-10-30 Thread Alex Rønne Petersen

On 30-10-2012 19:23, Jesse Phillips wrote:

I've written an article which goes over templates and objects.

http://nascent.freeshell.org/programming/D/objectTemplate.php

On a similar note I've republished _Learning to Program Using D_. Not a
whole lot of change on the content front. Some expansions on existing
chapters and a few fillers were added. Still very unfinished at around
50 pages.

http://nascent.freeshell.org/programming/D/LearningWithD/

I include a generated PDF and a pre.tex file. What is probably of more
interest to others writing D books in Latex is I have a program which
handles building running and capturing output for the final tex file.
It is very picky about formatting and can't handle file includes and
probably many other fancy Latex options but it is mine so :P

https://github.com/JesseKPhillips/listings-dlang-extractor

And finally code uses the listings package, for which I have provided a
style file to handle highlighting.

https://github.com/JesseKPhillips/dlang-latex-listings



I think you should cover C#. It allows virtual generic methods in its 
implementation of reified generics by relying on the JIT.


--
Alex Rønne Petersen
a...@lycus.org
http://lycus.org


Mono-D v0.4.1.7

2012-10-28 Thread alex

On Sunday, 21 October 2012 at 20:39:17 UTC, F i L wrote:

On Sunday, 21 October 2012 at 17:37:17 UTC, alex wrote:


This behaviour is terribly inreproducable..Sometimes it tends 
to not have any plan of what I'm typing, but mostly (and quite 
only) it actually knows what I want to have in my completion 
list..
If you're able to figure out a good way of having it that 
buggy, please tell me.


In the mean time, if you want to switch to older versions, 
just check out

http://mono-d.alexanderbothe.com/repo


Thanks Alex. As far as reproducing the error, all I have to do 
is create a new test project, and change the 'main.d' file to 
look like:


module main;

class Test
{
int x = 10;
}

void main()
{
auto t = new Test();
t... // wrong options, you know the situation
}

I'll try and find a situation where it works, and report before 
I Switch back to an older version.


Fixed it. Was something with manual SO prevention and a missing 
declaration conditition implementation..but now it works 
definitely, see:

https://github.com/aBothe/Mono-D/issues/161

I've put it in Mono-D v0.4.1.7


Re: Mono-D v0.4.1.6

2012-10-23 Thread alex

On Sunday, 21 October 2012 at 20:39:17 UTC, F i L wrote:

On Sunday, 21 October 2012 at 17:37:17 UTC, alex wrote:


This behaviour is terribly inreproducable..Sometimes it tends 
to not have any plan of what I'm typing, but mostly (and quite 
only) it actually knows what I want to have in my completion 
list..
If you're able to figure out a good way of having it that 
buggy, please tell me.


In the mean time, if you want to switch to older versions, 
just check out

http://mono-d.alexanderbothe.com/repo


Thanks Alex. As far as reproducing the error, all I have to do 
is create a new test project, and change the 'main.d' file to 
look like:


module main;

class Test
{
int x = 10;
}

void main()
{
auto t = new Test();
t... // wrong options, you know the situation
}

I'll try and find a situation where it works, and report before 
I Switch back to an older version.


Just tried it and had the same strange issue behaviour a couple 
of times - but as I restarted MD, the issue wasn't there 
anymore..neither in 3.0.4.8 nor 3.0.4.7 .. seems to be a very 
rare issue only..and therewith a border case 'only'


Re: Mono-D v0.4.1.6

2012-10-21 Thread alex

On Sunday, 21 October 2012 at 01:31:55 UTC, F i L wrote:

On Sunday, 21 October 2012 at 01:14:58 UTC, alex wrote:

On Saturday, 20 October 2012 at 23:49:03 UTC, F i L wrote:
The symbols themselves show up fine, but any class/struct 
members don't show up.


I have no idea why it's suddenly working again. I've uploaded 
a new

http://mono-d.alexanderbothe.com/repo/MonoDevelop.D_0.4.1.6_MD3.0.4.7.mpack


That didn't change anything on my end. Still the same 
intellisense options after the install. BTW, by installing from 
the file, will that stop me from receiving online updates?


Strange. And yes, installing the mpack manually isn't enabling 
auto-updates..but due to the awful updating policy I had to open 
a second repository just for MD 3.0.4.7 ..and at this point I 
just say *uck it, I don't care :D


Re: Mono-D v0.4.1.6

2012-10-21 Thread alex


This behaviour is terribly inreproducable..Sometimes it tends to 
not have any plan of what I'm typing, but mostly (and quite only) 
it actually knows what I want to have in my completion list..
If you're able to figure out a good way of having it that buggy, 
please tell me.


In the mean time, if you want to switch to older versions, just 
check out

http://mono-d.alexanderbothe.com/repo


Mono-D v0.4.1.6

2012-10-20 Thread alex


Aaaand Mono-D 0.4.1.6 released.. please check out
http://mono-d.alexanderbothe.com/?p=645

.. this time, I'm too lazy to enum any details but one larger 
improvement: The new  way of renaming symbols.
It can be done a bit more comfortable via relatively nice 
designed dialog boxes now - I even appended a screenshot to the 
post :)


Re: Mono-D v0.4.1.6

2012-10-20 Thread alex

On Saturday, 20 October 2012 at 23:49:03 UTC, F i L wrote:

On Saturday, 20 October 2012 at 22:12:57 UTC, alex wrote:


Aaaand Mono-D 0.4.1.6 released.. please check out
http://mono-d.alexanderbothe.com/?p=645

.. this time, I'm too lazy to enum any details but one larger 
improvement: The new  way of renaming symbols.
It can be done a bit more comfortable via relatively nice 
designed dialog boxes now - I even appended a screenshot to 
the post :)


hmmm... with the latest update (and possibly the previous one, 
I hadn't updated since the first post of this thread), the 
intellisense completely fails. Every symbol's intellisense 
options read:


alingof
init
mangleof
sizeof
stringof

The symbols themselves show up fine, but any class/struct 
members don't show up.


Oh man...this is awful. (Lol I think as I'm writing this I'm 
having a déja-vu)
It's even worse that it's showing the correct items only 
sometimes, so sometimes only the general ones (alignof etc.), and 
sometimes the correct ones..




Re: Mono-D v0.4.1.6

2012-10-20 Thread alex

On Saturday, 20 October 2012 at 23:49:03 UTC, F i L wrote:
The symbols themselves show up fine, but any class/struct 
members don't show up.


I have no idea why it's suddenly working again. I've uploaded a 
new

http://mono-d.alexanderbothe.com/repo/MonoDevelop.D_0.4.1.6_MD3.0.4.7.mpack


Blog post: Demystifying Garbage Collectors

2012-10-11 Thread Alex Rønne Petersen

http://xtzgzorex.wordpress.com/2012/10/11/demystifying-garbage-collectors/

Essentially an explanation of garbage collection for the layman 
programmer. Though, it does assume some familiarity with C and memory 
management. It's an abstract article not particularly specific to any GC 
implementation, but I figured I'd post it here anyway in case anyone's 
interested.


--
Alex Rønne Petersen
a...@lycus.org
http://lycus.org


Mono-D v0.4.1.4 Completion improvement, again

2012-09-10 Thread alex

Hi everyone,

Though I primarily wanted to do the formatter first I’ve made 
some changes to the completion engine again:


- Found mistake in the D specs again: It’s unimportant whether 
there are only   members that are named as the parent template 
but whether there ARE members called   like the template – so 
if there are other members, it’s not throwing a compilation   
error.
- Got to!string(…) finally be recognized as a string value – 
Implemented a first approach on how to find templates’ child 
items that are named like the actual template and replace that 
template by that equally-named child.
- Completion issue when handling Exception objects inside catch() 
blocks

- Small typeid() completion issue
- Solved several UFCS issues with template methods that are 
invoked via ufcs.
- Several micro-optimizations + Way better template 
parameter/instance handling

- Fixed completion issue with auto-returning functions
- Great internal redesign / put some class-defining sources into 
subdirectories

- fixed import statement generation/NewExpression handling
- Mini tooltip bug. recognized that my code is smarter than I 
originally expected. *cough cough*


So far. I’ve updated the link to the package for MD 3.0.3.5, 
too. I hope that there aren’t so many (new) crashs and 
exceptions/bugs whatever anymore, but let’s see :)


http://mono-d.alexanderbothe.com
https://github.com/aBothe/Mono-D/issues


Re: GC vs. Manual Memory Management Real World Comparison

2012-09-05 Thread Alex Rønne Petersen

On 05-09-2012 13:03, Benjamin Thaut wrote:

I rewrote a 3d game I created during my studies with D 2.0 to manual
memory mangement. If I'm not studying I'm working in the 3d Engine
deparement of Havok. As I needed to pratice manual memory management and
did want to get rid of the GC in D for quite some time, I did go through
all this effort to create a GC free version of my game.

The results are:

 DMD GC Version: 71 FPS, 14.0 ms frametime
 GDC GC Version: 128.6 FPS, 7.72 ms frametime
 DMD MMM Version: 142.8 FPS, 7.02 ms frametime

GC collection times:

 DMD GC Version: 8.9 ms
 GDC GC Version: 4.1 ms

As you see the manual managed version is twice as fast as the garbage
collected one. Even the highly optimized version created with GDC is
still slower the the manual memory management.

You can find the full article at:

http://3d.benjamin-thaut.de/?p=20#more-20


Feedback is welcome.

Kind Regards
Benjamin Thaut


Is source code available anywhere?

Also, I have to point out that programming for a garbage collected 
runtime is very different from doing manual memory management. The same 
patterns don't apply, and you optimize in different ways. For instance, 
when using a GC, it is very recommendable that you allocate up front and 
use object pooling - and most importantly, don't allocate at all during 
your render loop.


--
Alex Rønne Petersen
a...@lycus.org
http://lycus.org


Re: GC vs. Manual Memory Management Real World Comparison

2012-09-05 Thread Alex Rønne Petersen

On 05-09-2012 13:19, Benjamin Thaut wrote:

Am 05.09.2012 13:10, schrieb Alex Rønne Petersen:


Is source code available anywhere?

Also, I have to point out that programming for a garbage collected
runtime is very different from doing manual memory management. The same
patterns don't apply, and you optimize in different ways. For instance,
when using a GC, it is very recommendable that you allocate up front and
use object pooling - and most importantly, don't allocate at all during
your render loop.



The sourcecode is not aviable yet, as it is in a repository of my
university, but I can zip it and upload the current version if that is
wanted. But it currently does only support Windows and does not have any
setup instructions yet.

I do object pooling in both versions, as in game developement you
usually don't allocate during the frame. But still in the GC version you
have the problem that way to many parts of the language allocate and you
don't event notice it when using the GC.

Just to clarify, I'm into 3d engine developement since about 7 years
now. So I'm not a newcomer to the subject.

Kind Regards
Benjamin Thaut


Sure, I just want to point out that it's a problem with the language (GC 
allocations being very non-obvious) as opposed to the nature of GC.


--
Alex Rønne Petersen
a...@lycus.org
http://lycus.org


  1   2   3   >