<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Allegro on NuGet!</title>
		<link>http://www.allegro.cc/forums/view/615945</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 16 Jan 2016 10:17:10 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks to the amazing work by Peter Hull, Allegro is now packaged by <a href="https://www.nuget.org/packages/Allegro/">NuGet</a>, a MSVC-supported package manager! <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /></p><p>If you have MSVC 2015, you can try it out by following the <a href="https://wiki.allegro.cc/index.php?title=Windows,_Visual_Studio_2015_and_Nuget_Allegro_5">tutorial</a>.</p><p>We&#39;ll be adding support for more MSVC versions (probably 2012) and probably new build types (a statically linked dynamic runtime version at the very least) at some later point.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Thu, 24 Dec 2015 01:40:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><ol><li><p>Well, first things first, that&#39;s awesome.
</p></li><li><p>After having to clear 5 Gigs from my hard drive for MSVC 2015, I can&#39;t seem to find <b>Empty Project</b> <span class="remote-thumbnail"><span class="json">{"name":"609972","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/a\/0\/a0f5e9d723fbd0a0a8ed4f0cc2d85797.png","w":1100,"h":800,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/a\/0\/a0f5e9d723fbd0a0a8ed4f0cc2d85797"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/a/0/a0f5e9d723fbd0a0a8ed4f0cc2d85797-240.jpg" alt="609972" width="240" height="174" /></span>
</p></li><li><p>How does one go about getting a package on NuGet?  Is it a lot of work?
</p></li></ol></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Thu, 24 Dec 2015 07:16:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>2. Haha! Didn&#39;t think I&#39;d need to add a tutorial for that <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> Yes, you&#39;ll need to install the C++ tools (I&#39;m sure I recall an option for that during installation). Indeed, MSVC is a terrible space hog.</p><p>3. Getting it there is easy (they don&#39;t even sign packages like Ubuntu PPAs do...), but creating one will take a bit of work.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Thu, 24 Dec 2015 07:25:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I do not like Windows, but I really like this news.  Peter Hull gets an extra big Christmas bonus this year.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Gideon Weems)</author>
		<pubDate>Thu, 24 Dec 2015 12:09:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Is this a full static build of Allegro, or DLL?  I&#39;m currently including self-built static Allegro monoliths in the minisphere Git repo and it would be nice to be able to quit doing that. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Bruce Pascoe)</author>
		<pubDate>Thu, 24 Dec 2015 23:15:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s really fantastic. Very well done, Peter!</p><p>FYI, I&#39;ve found NuGet to be more trouble than its worth in professional work. We use it to manage several packages from .NET libraries and frameworks to JavaScript libraries. It&#39;s generally quite a mess. And we haven&#39;t figured out the right incantation to mix it with version control... This is literally a Windows-style package manager... It lacks many of the things that make package repositories Just Work(tm). It&#39;s generally a poor way to pull in JavaScript library updates. For Allegro&#39;s purposes I think it will solve the problem quite nicely!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Thu, 24 Dec 2015 23:33:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/615945/1018470#target">Bruce Pascoe</a> said:</div><div class="quote"><p> Is this a full static build of Allegro, or DLL? I&#39;m currently including self-built static Allegro monoliths in the minisphere Git repo and it would be nice to be able to quit doing that. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> </p></div></div><p>It comes with a non-monolith release, non-monolith debug and a monolith static release (since there&#39;s no practical difference between monolith and non-monolith static builds) builds. The release builds statically link the runtime, but as per a request in a different thread there&#39;ll probably be a dynamically linked runtime static release build version at some point.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Thu, 24 Dec 2015 23:46:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think SL is being modest, as usual. He knocked all the rough edges off my package definition and made it usable.</p><p>Couple of points:</p><ul><li><p>Unlike Linux where the packaging is <b>fundamental</b> to the concept of a &#39;Linux Distribution&#39;, Nuget feels a bit of an afterthought. I have a horrible feeling MS is not 100% behind it though it does seem to be gaining popularity at the moment.
</p></li><li><p>It seems to handle different tool sets and platforms by just including all possible variants in the same package - one for each version of Visual Studio times each debug/release variant times each processor. This makes for big packages which AFAICS are copied in their entirety into each project that uses them.
</p></li><li><p>The docs are a bit sketchy so anything I say above may be wrong!</p></li></ul><p>Thanks all,<br />Pete
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Thu, 31 Dec 2015 19:15:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Eh, afterthought or not it still beats including the .lib files in your Git repo directly. <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Bruce Pascoe)</author>
		<pubDate>Fri, 01 Jan 2016 00:31:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I tried it, works well. Should be really helpful to get people into allegro development easier on windows.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (l j)</author>
		<pubDate>Fri, 01 Jan 2016 04:08:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Tried it .. perfect !!  The easiest way to get started on Windows <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /><img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /><img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Malcolm Harrow)</author>
		<pubDate>Sun, 03 Jan 2016 07:53:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>How do the Allegro packages/versions get updated?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Mon, 04 Jan 2016 12:47:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I build them and then upload them on nuget.org.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Mon, 04 Jan 2016 12:48:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have tried out creating a few projects using NuGet.</p><p>I get an access violation (Exception thrown at 0x00000000 in test.exe: 0xC0000005: Access violation executing location 0x00000000.), when I put this code in main():</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/al_set_physfs_file_interface"><span class="a">al_set_physfs_file_interface</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"data/tiles.png"</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

When I comment out al_set_physfs_file_interface(), I get no access violation.</p><p>Is this a bug or some setting I must do in my project because I&#39;m using NuGet?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc ( Arvidsson)</author>
		<pubDate>Sun, 10 Jan 2016 13:36:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Nuget only copies the files and makes sure the project settings reference them, so you shouldn&#39;t have to do anything different.</p><p>I would first check you aren&#39;t accidentally mixing in any other versions of Allegro that you have installed, and if that&#39;s not the problem, is it possible for you to zip up a minimal example project and post it here, or file an issue on <a href="https://github.com/SiegeLord/allegro_winpkg/issues">https://github.com/SiegeLord/allegro_winpkg/issues</a> ?</p><p>Thanks
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Sun, 10 Jan 2016 16:31:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You never called <span class="source-code">PHYSFS_init</span>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Mon, 11 Jan 2016 06:06:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh. Me stupid.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc ( Arvidsson)</author>
		<pubDate>Mon, 11 Jan 2016 12:16:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The &quot;allegro-debug.pdb&quot; symbol file is missing and/or not deployed with the NuGet package so when a program crashes it&#39;s impossible to trace them back to figure out what was passed to Allegro&#39;s functions to figure out what was wrong.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Brooklyn)</author>
		<pubDate>Fri, 15 Jan 2016 02:58:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmm... we never actually distributed pdb files before. The debug versions are sort of more for triggering the asserts inside allegro, rather than necessarily backtracing into it. Currently our build system doesn&#39;t install them correctly (and it doesn&#39;t appear that it builds them correctly for the monolith library), but if we fix that, we could probably distribute them.</p><p>They are a bit large though, hah.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Fri, 15 Jan 2016 10:09:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Be careful about distributing PDBs - they include absolute path information (to help MSVC locate the original source files).</p><p>And yes, they do tend to be huge.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Bruce Pascoe)</author>
		<pubDate>Fri, 15 Jan 2016 10:40:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
The reason I ask is because I&#39;m currently having an issue of a crash-on-close where something has gone out of scope and/or cleaned up via RAII smart pointers and allegro tries to handle it after returning from main. All I get is &quot;Could not find allegro-debug.pdb&quot; from Visual Studio 2015 when stepping through. Digging through (at most) 30,000 lines of code to find where my program is passing an expired value is going to take forever.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Brooklyn)</author>
		<pubDate>Fri, 15 Jan 2016 11:33:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So, to do this we just have to correctly name the package (Allegro.symbols.nupkg) and the NuGet/VS system will automatically make the link?<br />(Based on <a href="https://docs.nuget.org/create/creating-and-publishing-a-symbol-package">https://docs.nuget.org/create/creating-and-publishing-a-symbol-package</a>)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Fri, 15 Jan 2016 12:43:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Most of my experience in Windows/Visual Studio land is with .NET code so maybe it&#39;s different, but typically when you build a foo.dll using a Debug profile there is a foo.pdb created alongside it. I&#39;m curious if this &quot;allegro-debug.pdb&quot; is a literal error message or is an approximation, and if it&#39;s exact then what symbols within the package match &quot;allegro-debug&quot;?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (bamccaig)</author>
		<pubDate>Fri, 15 Jan 2016 12:54:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>For completeness, here&#39;s the exact error after the program attempts to return from main:</p><p>&quot;Exception thrown at 0x577E3E67 (allegro-debug-5.1.dll) in Engine.exe: 0xC0000005: Access violation reading location 0x00000000.&quot;</p><p>When I select &quot;Break&quot; from the available buttons I get:</p><p>&quot;No Symbols Loaded (tab name)<br />allegro-debug.pdb not loaded (title)</p><p>allegro--debug.pdb contains the debug information required to find the source for the module allegro-debug-5.1.dll</p><p>Module Information<br />Version: [blank]<br />Original Location: [Path to Output folder for Debug Configuration]\allegro-debug-5.1.dll&quot;</p><p>It&#39;s obvious that a heap-allocated variable has gone out of scope and cleaned itself up (I&#39;m using C++11 smart pointers) and then Allegro tried to do some cleanup with it but without a Call Stack or symbols available I have no idea <b>which</b> variable went out of scope nor which function tried to access it.</p><p>EDIT</p><p>After deleting the output folders and rebuilding to make sure I have the correct DLLs loaded (I still had a few of the 5.0.10 DLLs in them, now they are all 5.1) I still get the same error.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Brooklyn)</author>
		<pubDate>Fri, 15 Jan 2016 13:41:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Have you correctly implemented copy constructors for your &#39;smart&#39; objects? You can easily add in a printf statement here and there to see what kind of object it is, or add in a divide by zero if you detect a double free to get a breakpoint.</p><p>If you&#39;re copying objects naively (shallow copy), that could easily be the source of a double free when the original is destroyed and then the copy goes out of scope it will free it again. That&#39;s my guess without looking at any code.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 16 Jan 2016 04:10:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve figured out the issue. I was not manually resetting (a call to the smart pointer&#39;s reset function) a file-scope smart pointer during the user-defined cleanup phase. If that step is missed, the C++ Standard says destruction of the smart pointers takes place during std::exit. Since Allegro has hooked into exit via a call to std::atexit it effectively shuts down <b>before</b> exit is called. Then any smart pointers try to use the custom deleters pointing to Allegro functions...which no longer work. Crash with accessing a no-man&#39;s-land (0xDDDDDDD) or null pointer address.</p><p>I love programming. I hate debugging. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Brooklyn)</author>
		<pubDate>Sat, 16 Jan 2016 07:00:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Bambam would say that&#39;s what you get for using globals. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /></p><p>And as an aside, if you&#39;re manually calling reset, why are you using a smart pointer in the first place?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 16 Jan 2016 07:03:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Because they are a great feature to have...as long as a third party library does not hook into the exit function and shutdown the use of the custom deleters. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>With this issue resolved I now declare the NuGet package awesome and easy to use and set up. PDBs would still be a nice feature though.</p><p>(P.S. I can&#39;t seem to find the Quote button on this forum software)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Brooklyn)</author>
		<pubDate>Sat, 16 Jan 2016 07:30:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;re welcome to shutdown allegro manually, by avoiding the allegro atexit shutdown by using <span class="source-code"><a href="http://www.allegro.cc/manual/al_install_system"><span class="a">al_install_system</span></a></span> and then calling <span class="source-code"><a href="http://www.allegro.cc/manual/al_uninstall_system"><span class="a">al_uninstall_system</span></a></span> after your globals get destroyed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 16 Jan 2016 07:47:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>There is no quote button, as I found out a while back. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />  You have to greentext:</p><p>&gt; Some text to quote</p><p>As for this:</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/615945/1019042#target">Brooklyn</a> said:</div><div class="quote"><p> I love programming. I hate debugging.</p></div></div><p>I must be weird.  I&#39;ll get a bug report or come across a bug myself, I rub my hands together in an excited &quot;let&#39;s get to work!&quot; way, and fire up the debugger.  I probably have more fun debugging than I do writing the original (buggy <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />) code.</p><p>That said, the type of bug you had to deal with isn&#39;t very fun, even for me.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Bruce Pascoe)</author>
		<pubDate>Sat, 16 Jan 2016 10:17:10 +0000</pubDate>
	</item>
</rss>
