Re: [rust-dev] Rust Radio - an SDR framework

2014-09-11 Thread Thad Guidry
SDR is an EXCELLENT software design challenge to flex Rust's muscles (and
expose latent bugs) !


On Thu, Sep 11, 2014 at 9:32 AM, Evan G eg1...@gmail.com wrote:

 This is so cool! SDR are awesome.

 On Thu, Sep 11, 2014 at 8:56 AM, Allen Welkie allen.wel...@gmail.com
 wrote:

 If anyone is interested in software defined radios, I'm starting a
 project called Rust Radio (very similar to GNU Radio). Take a look at
 https://github.com/awelkie/rustradio. It's still pretty new, but
 critiques and contributions are always welcome!

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev



 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Migrating libs out of rust-lang/rust

2014-07-29 Thread Thad Guidry
[snip]


 2. A status page [2] is provided to get a quick glance at the status of all
officially supported repositories.

 The amount of infrastructure around keeping these repositories up to date
 will likely change over time, but this is the current starting point for
 automation.

 [1]: https://github.com/rust-lang/hexfloat/blob/master/.travis.yml
 [2]: http://buildbot.rust-lang.org/travis/travis.html


So going forward...

Where can we look in source / folders / files ... to see what is an
officially supported repository and what is not ?  Let's say I don't want
to have to look at the Travis view for that info, but just look at source
to figure this out.

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Cargo multiple targets

2014-07-03 Thread Thad Guidry
The links for FAQ and Manifest Format on http://crates.io should be
rearranged to be at the top of the homepage...instead of the bottom, in my
opinion.



On Wed, Jul 2, 2014 at 7:38 AM, Isak Andersson cont...@bitpuffin.com
wrote:

 Hi!

 Wow I didn't know about the manifest page, I was under the impression that
 the docs were very lacking. But this is pretty great.

 Thanks a bunch that was super helpful!


 On Wed, Jul 2, 2014 at 2:09 PM, Vladimir Matveev dpx.infin...@gmail.com
 wrote:

 Hi, Isak!

 According to manifest documentation [1] you can specify crate type
 (dynamic or static lib or rlib) using crate_type option:

 [[lib]]
 …
 crate_type = [dylib, staticlib]

 The above configuration should build you both .a and .so files.

 [1]: http://crates.io/manifest.html, search for crate_type w/o
 quotes

 On 02 июля 2014 г., at 15:58, Isak Andersson cont...@bitpuffin.com
 wrote:

  Hi!
 
  Thanks for the reply!
 
  Apparently multiple targets does in fact work. Just that you can't rely
 on the
  default path anymore, so I had to add the path = ... to both the
 [[lib]] and [[bin]].
  Not sure if this is a bug or not.
 
  However the library compiles as an rlib and I'm not sure how to change
 it to build
  a C library instead (a .a or .so on *nix or .lib I think on windows).
 
  Actually I'm not even sure how to make rustc build a C library so I
 guess that's what
  I will start looking at.
 
 
  On Wed, Jul 2, 2014 at 1:37 PM, Sebastian Gesemann 
 s.gesem...@gmail.com wrote:
  On Wed, Jul 2, 2014 at 12:49 PM, Isak Andersson wrote:
   Hello Rust folks!
  
   I am using Cargo and I am trying to specify mulitple targets in my
   Cargo.toml file.
   First of all is this even possible?
   ...
   [package]
   name = hmproof
   version = 0.1.0
   authors = [ i...@houstonmedia.se ]
   [[bin]]
   name = hmwhoami
   [[lib]]
   name = proof
   (I also tried adding a path)
   path = src/proof.rs
   [dependencies.rust-http]
   git = https://github.com/chris-morgan/rust-http.git;
  
   I also tried putting the [[lib]] part after the dependencies part.
 The error
   I get is this:
   error: couldn't read src/bin/hmwhoami.rs: couldn't open file (no
 such file
   or directory [...]
   Whiich doesn't make any sense at all to me. Why does it suddenly start
   looking in src/bin?
 
  According to http://crates.io/manifest.html the default path for a
  binary is src (if there is no other lib) and src/bin (if there is also
  a lib target). You should be able to override this with path =
  src/hmwhoami.
 
   Do I have to put my bin code in src/bin and my lib code in src lib or
 what?
 
  Currently, only a single lib per package is supported and it seems,
  judging by the document about the manifest format, that Cargo always
  looks for src/lib.rs for a library unless you override this using a
  path=something.
 
  As for how to tell Cargo to invoke rustc with the appropriate -L
  option: I don't know.
 
  HTH,
  sg
  ___
  Rust-dev mailing list
  Rust-dev@mozilla.org
  https://mail.mozilla.org/listinfo/rust-dev
 
  ___
  Rust-dev mailing list
  Rust-dev@mozilla.org
  https://mail.mozilla.org/listinfo/rust-dev



 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] [ANN] zmq.rs - native stack of ØMQ in Rus

2014-07-03 Thread Thad Guidry
Hey Fantix, nice job !

By the way, if you really have time to spare...MQTT would also be a nice
to have library...for the embeddable sensor domain guys.

A bit about it here:
http://clockwerx.blogspot.com/2014/06/whats-mqtt-and-how-can-you-use-it.html

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Integer overflow, round -2147483648

2014-06-24 Thread Thad Guidry
I completely agree with Daniel in all points on this thread.  (he
aggressively states over and over his stance and the teams concerning the
goals of Rust. The team has not deviated from their objective of the Rust
model. Kudos.)

I do not need compiler switches nor do I want them.
I want the control defined in the code by me.
Giving me that control for wrapping on/off for a scope is the way forward.
Whatever the names end up being...

+1 for wrapping on/off for a scope.  Get 'er done.

(and thanks for keeping my memory safe)



On Tue, Jun 24, 2014 at 2:01 PM, Daniel Micay danielmi...@gmail.com wrote:

 On 24/06/14 02:34 PM, Daniel Micay wrote:
 
  You haven't explained how this is going to cause security issues in
  Rust, when the language is guaranteed to be memory safe outside of
  `unsafe` blocks. The `unsafe` blocks are low-level, performance critical
  code where unnecessary overflow checks are always going to be
  acceptable, so the feature has next to no value in terms of memory
 safety.

 s/acceptable/unacceptable/


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] How to find Unicode string length in rustlang

2014-05-28 Thread Thad Guidry
Benjamin seems to say that folks won't read the docs and we need to make
the syntax more helpful..

Kevin seems to say that we need to keep the syntax simple and just teach
folks to read the docs.

I think I would agree with both of them overall for a language design goal
that Rust wants to meet

...and in that light... I would first and foremost improve the docs which
probably caused Aravinda's original confusion...there's no mention of u8 in
this doc search, for instance, for the method that Aravinda used in his
example :
http://doc.rust-lang.org/0.10/std/index.html?search=from_str

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] A few random questions

2014-05-28 Thread Thad Guidry
You can also read and search the docs and easily see the Implementors (and
even click on them to get more detailed documentation AND even have 1 click
access to the [src] ) :

http://doc.rust-lang.org/0.10/std/to_str/trait.ToStr.html

If you find the docs are lacking a bit, then let the maintainers know
(there is ongoing effort to improve the docs by the way...even a few newly
hired folks at Mozilla).



On Wed, May 28, 2014 at 8:23 PM, Sean McArthur smcart...@mozilla.comwrote:




 On Wed, May 28, 2014 at 5:38 PM, Oleg Eterevsky o...@eterevsky.comwrote:

 3. It seems like almost any string operation requires as_slice().
 Can't various string methods be also implemented for String?


 When writing functions for others to use, you don't want to require them
 to have a String, since that requires a heap allocation. It's free to go
 from String to a slice, but not vice-versa. That said, there's been
 whispers of making String implement Deref, as well passing as arguments to
 autoderef, so you could pass a String and rustc would convert to a slice
 for you.


 5. Simple indexing doesn't work for vectors:
   let a = vec![1, 2, 3];
   println!({}, a[0]);
 It's a bit surprising...


 Known issue: https://github.com/mozilla/rust/issues/11875



 6. impl ToStr for custom struct fails:
   error: conflicting implementations for trait `std::to_str::ToStr`
   note: conflicting implementation in crate `std`
 Is it a bug? Is Show implicitly assumed for all struct's?


 This is because ToStr is implemented for all Show implementations. You
 can't implement ToStr, because if you then implemented Show, you'd have
 conflicting implementations. #[deriving(Show)] on your structs is probably
 all you want.


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] UTF-8 strings versus encoded ropes

2014-05-01 Thread Thad Guidry
Agreed with Patrick.  This proposal should not be in std::str  ... it can
live somewhere else...but not there.

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/

On Thu, May 1, 2014 at 4:52 PM, Patrick Walton pcwal...@mozilla.com wrote:

 On 5/1/14 6:53 AM, Malthe Borch wrote:

 In Rust, the built-in std::str type is a sequence of unicode
 codepoints encoded as a stream of UTF-8 bytes.

 Meanwhile, building on experience with Python 2 and 3, I think it's
 worth considering a more flexible design.

 A string would be essentially a rope where each leaf specifies an
 encoding, e.g. UTF-8 or ISO8859-1 (ideally expressed as one or two
 bytes).


 This is too complex for a systems language with a simple library.

 Patrick


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev

___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] A small announcement for zinc, the bare metal rust stack

2014-04-22 Thread Thad Guidry
I would have named it ... oxide instead of zinc ;-) ... rust = iron oxide


On Tue, Apr 22, 2014 at 1:50 PM, Brian Anderson bander...@mozilla.comwrote:

 This sounds very useful. Thanks for letting us know.


 On 04/22/2014 09:10 AM, Vladimir Pouzanov wrote:

 This is the project I've been tinkering with for a good number of
 weekends — zinc, the bare metal stack for rust is available at
 https://github.com/hackndev/zinc.

 I've just finished a major refactoring work for LPC1768 code, so STM32F4
 is kind of broken yet, and LPC1114 is totally dropped, but I'll fix that
 soon.

 The current code supports GPIO operations, UART and SSP in SPI mode for
 NXP LPC1768, also featuring a driver for
 http://mbed.org/cookbook/mbed-application-board TFT LCD and for
 ILI9341-based TFT LCDs commonly found on ebay.

 My plan is to fix support for STM32F4, bring it to the level of NXP part
 and try to expand this to a small RTOS, which would be a nice demo of
 rust capabilities for embedded development.

 The code is licensed under Apache-2.0.

 There's no readme yet, but you can see the demo applications written
 with zinc here: https://github.com/hackndev/zinc/tree/master/apps.

 --
 Sincerely,
 Vladimir Farcaller Pouzanov
 http://farcaller.net/


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Rust windows bots have transitioned to mingw-w64

2014-04-11 Thread Thad Guidry
LOL.  OK, and I'll keep me fingers crossed. ;)


On Fri, Apr 11, 2014 at 3:40 PM, Brian Anderson bander...@mozilla.comwrote:

 It turns out this was premature and the bots are still using the old
 toolchain. I'll keep working on it.


 On 04/10/2014 05:05 PM, Brian Anderson wrote:

 After a long time coming, the Rust windows bots are now running an
 up-to-date mingw-w64 toolchain. This was a very easy transition thanks
 to the efforts of our windows devs, including Vadim, Thad, and klutzy.

 The practical impact of this is that windows developers should prefer
 the mingw-w64 toolchain to the old mingw toolchain. This is the
 toolchain we will be supporting on Windows for the immediate future.

 I've updated the [windows instructions] and the [getting started] page
 slightly, but there's a lot of information there that I don't fully
 understand. I'd appreciate if some of the more experienced windows devs
 could go over them and make sure they are accurate.

 The next step will be to add 64-bit windows bots and snapshots.

 [windows instructions]:
 https://github.com/mozilla/rust/wiki/Using-Rust-on-Windows
 [getting started]:
 https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] About Rust programming language.

2014-04-10 Thread Thad Guidry
Much better 2nd response, Brian.  More like a salesman.  You want to pull
them in ... not push them away :-)


On Thu, Apr 10, 2014 at 2:01 PM, Brian Anderson bander...@mozilla.comwrote:

 Sorry for the curt response. The answer is that Rust is suitable for many
 of the same tasks as C. Thank you.

 Please do not have this discussion here.


 On 04/10/2014 11:58 AM, Brian Anderson wrote:

 Thank you for your interest, but this is not a constructive topic for
 this venue.

 On 04/10/2014 11:35 AM, Jason Long wrote:

 Hello Folks.
 How are you?
 I want to know something about Rust language and Is it C killer? I mean
 is that in the future is it a replacement for C?

 Cheers.


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Rust windows bots have transitioned to mingw-w64

2014-04-10 Thread Thad Guidry
Ra Ra Ooo La La !

Good work team !

(looking forward to the 64-bit snapshots)


On Thu, Apr 10, 2014 at 7:05 PM, Brian Anderson bander...@mozilla.comwrote:

 After a long time coming, the Rust windows bots are now running an
 up-to-date mingw-w64 toolchain. This was a very easy transition thanks to
 the efforts of our windows devs, including Vadim, Thad, and klutzy.

 The practical impact of this is that windows developers should prefer the
 mingw-w64 toolchain to the old mingw toolchain. This is the toolchain we
 will be supporting on Windows for the immediate future.

 I've updated the [windows instructions] and the [getting started] page
 slightly, but there's a lot of information there that I don't fully
 understand. I'd appreciate if some of the more experienced windows devs
 could go over them and make sure they are accurate.

 The next step will be to add 64-bit windows bots and snapshots.

 [windows instructions]: https://github.com/mozilla/
 rust/wiki/Using-Rust-on-Windows
 [getting started]: https://github.com/mozilla/rust/wiki/Note-getting-
 started-developing-Rust
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Rust automation downtime

2014-03-13 Thread Thad Guidry
Curious, Whole Mozilla moving ? or just some teams ?  and why ?  making
room for others ?  kicked out by grumpy landlord or mayor ? :-)


On Wed, Mar 12, 2014 at 11:08 PM, Brian Anderson bander...@mozilla.comwrote:

 This weekend Mozilla's Mountain View office is moving, and along with it
 some of Rust's build infrastructure. There will be downtime.

 Starting tonight bors is not gated on the mac or android builders and
 those machines are turned off. Sometime this weekend other build machines,
 including the build master and bors, will be moved and things will stop
 working.

 The Monday triage email will be delayed.

 We'll sort everything out Monday. Sorry for the inconvenience.

 Regards,
 Brian
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] issue numbers in commit messages

2014-02-17 Thread Thad Guidry
Use a better graphical Git client ?  (instead of Github itself)

I personally just do my reviews through Gitk from my Git Bash install on
Windows.  Screenshot: 
 
Gitk.PNGhttps://docs.google.com/file/d/0B533WzlrxWraX1U5eDJ0S245ZVE/edit?usp=drive_web


On Linux, you might be better suited with other graphical Git clients, just
for your own browsing of auto-merges, etc.
Here's a dated article (2012) that covers some of them:
http://www.maketecheasier.com/6-useful-graphical-git-client-for-linux/




On Mon, Feb 17, 2014 at 9:34 PM, Palmer Cox palmer...@gmail.com wrote:

 If bors rewrites the commit messages, it means that if someone approves
 commit ABC, what actually gets merged will be commit XYZ. This seems
 potentially confusing to me and might also make it more difficult to start
 with a reviewed commit on Github, such as
 https://github.com/gentlefolk/rust/commit/37bf97a0f9cc764a19dfcff21d62384b2445dcbc,
 and then track back to the actually merged commit in the history.

 I'm also not 100% sure, but I think git might have some issues with it as
 well. If I do my work on a throwaway branch, after merging, will git know
 that the changes in that branch were merged? Or, will git require me to do
 a git branch -D to delete that branch? Are there other projects that
 rewrite commit messages before merging?

 It seems to me that the ideal case would be for Github to add a link on
 the commit view page back to the PR that merged that commit. I'd be
 concerned that  if Github adds support for such a feature in the future
 that it might not work if we've re-written all of the commit messages in
 the meantime.

 -Palmer Cox




 On Mon, Feb 17, 2014 at 9:28 PM, Nick Cameron li...@ncameron.org wrote:

 You are right, it is about convenient access to the info, not the lack of
 info.

 What is problematic about bors rewriting commit messages and changing
 hashes? My workflow is to always work on throw away branches and merge back
 into master. Is it common to work on master and merge back on top of your
 PR? Or are there other problems with changing the hash?


 On Tue, Feb 18, 2014 at 3:22 PM, Palmer Cox palmer...@gmail.com wrote:

 The PR# and who reviewed it is already available in the merge commit and
 its already possible to take any arbitrary commit and to see which merge
 commit merged it into master. So, I don't see any benefit in changing
 anything about the merge commit. Unless I'm missing something, this isn't a
 question of information not being available; its a question of that
 information being inconvenient to get to. I think having bors rewrite the
 commit messages would be somewhat problematic since it would change all the
 hashes. So, I think the only solution would be to manually put the issue
 number into the messages. However, many PRs aren't related to issues. So,
 if some large percentages of commits are just annotated with no issue or
 the like, it seems to really impact the utility of this change. Thus, I
 think it would really have to be the PR# instead of an issue # since every
 commit is related to a PR. However, I think it isn't a zero impact
 procedure. I always right the changes I want to merge before opening the
 PR. So, when I'm making my changes, I don't know what the eventual PR# is
 going to be. Only after I open the PR with the commits already created, I
 find out the PR#. So, then I'd have to rewrite all of the commit messages
 and force push back into the branch to get the numbers right. Its not the
 worst thing in the world, but it is an extra few steps.

 So, I strongly agree that the current procedure for finding the github
 discussion is fairly unpleasant and I very much wish that Github had a
 button that would take me to the PR that merged it. However, I don't think
 there is a 100% consistent, zero impact workaround for that missing feature
 in Github.

 My vote would be to leave things as they are. A little scripting could
 improve the situation quite a bit, although it still won't be as nice as
 being able to click on a link in Github.

 -Palmer Cox







 On Mon, Feb 17, 2014 at 9:02 PM, Scott Lawrence byt...@gmail.comwrote:

 What about having bors place the hash of each commit merged into the
 auto-merge message? Then finding the PR, and any closed issues, consists of
 backwards-searching in git-log. (Having bors modify commit messages would
 probably cause major problems with hashes changing.)


 On Tue, 18 Feb 2014, Nick Cameron wrote:

  Adding a few chars to a commit is not onerous and it is useful. You
 may not
 want it now, but perhaps you would if you had it to use. _I_ certainly
 want
 it, and I think others would find it useful if it was there to use.


 On Tue, Feb 18, 2014 at 1:37 PM, Steve Klabnik st...@steveklabnik.com
 wrote:

  Yeah, I'm not into modifying every single commit, I basically only
 want what bors already (apparently) already does.



 --
 Scott Lawrence

 ___
 Rust-dev mailing list
 

Re: [rust-dev] RFC: New Rust channel proposal

2014-01-23 Thread Thad Guidry
On Thu, Jan 23, 2014 at 2:33 PM, Brian Anderson bander...@mozilla.comwrote:

 On 01/13/2014 10:15 PM, Liigo Zhuang wrote:

 People should rethink the Chan api that Chan::new() does not returns a
 value of type Chan (instead, a tuple), which is strange, and inconsistent
 with other Type::new().


 Agree, though I haven't heard any great suggestions yet. The core problem
 is that there are three different entities involved: the sending end, the
 recieving end, and the thing that represents the entire channel, and they
 all need different names. The best I've heard is `pipe() - (Port, Chan)`,
 but I would rather call the whole thing a channel and have a different name
 for the sender.


A good alias / synonym for a sender would be a transmitter.  food for
thought.

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Debugging (rust 0.9) in Ubuntu via GDB

2014-01-13 Thread Thad Guidry
Eclipse also has a GDB plugin to assist with debugging.

http://wiki.eclipse.org/Linux_Tools_Project/GDB/User_Guide


On Mon, Jan 13, 2014 at 5:52 AM, John Mija jon...@proinbox.com wrote:

 There is a web front-end for gdb to debug applications in Go, C and C++.
 I'm supposed that it also could be used to debug Rust apps.

 https://github.com/sirnewton01/godbg

 El 13/01/14 07:42, Michael Woerister escribió:

 Hi,
 the `break` command can be a bit particular where function names are
 concerned, especially when namespaces and generics are involved. The
 correct full name of the shuffle method would be something like
 `std::rand::TaskRng::shuffleint` (there is a seperate function for
 every set of concrete type parameters, so `shuffleint` would be
 different from `shufflef32`).

 My recommendation here is to either
 * set the breakpoint using line numbers: break prog.rs:7
 * or use the `rbreak` command which takes a regular expression as
 argument, that is, `rbreak shuffle` will match any function containing
 the string shuffle in its name.

 Don't be shy to ask further questions if you have any :)

 -Michael

 On 13.01.2014 00:13, Artella Coding wrote:

 Suppose I have the following program :

 **
 //prog1.rs http://prog1.rs

 use std::rand::{task_rng, Rng};
 fn main() {
 let names = [Alice, Bob, Carol];
 for name in names.iter() {
 let v = task_rng().shuffle(~[1,2,3]);
 for num in v.iter() {
 println!({:s} says: {:d}, *name, *num);
 }
 }
 }
 **

 In previous versions of rust it was possible to put
 a breakpoint on shuffle  e.g.

 One would first compile via :

 rustc -Z debug-info prog1.rs http://prog1.rs


 and then one could proceed to put a breakpoint on shuffle :

 gdb ./prog1
 (gdb) break shuffle
 (gdb) run

 However now it doesn't seem possible to put a breakpoint on shuffle.
 Why is this? Thanks.



 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev

  ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] RFC: A 30 minute introduction to Rust

2014-01-13 Thread Thad Guidry
I think Mozilla just found their new hire for documentation writing !

Excellent Steve !

That's the kind of story and style that makes learning actually fun for
folks;   By giving good examples and analogies to foreign concepts along
the way (books).

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] Fast inverse square root in Rust

2014-01-12 Thread Thad Guidry
Where is the fast inverse square root function in Rust ?
http://en.wikipedia.org/wiki/Fast_inverse_square_root

Anyone know if this semi-accurate function is at a hardware level and built
in to Intel chipsets since MMX ?

How does this affect LLVM and Rust compilation on 64 bit ?

Thanks in advance,

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Fast inverse square root in Rust

2014-01-12 Thread Thad Guidry
Is that implemented through LLVM at
http://llvm.org/docs/doxygen/html/TargetTransformInfo_8h_source.html

00265   /// haveFastSqrt -- Return true if the hardware has a fast
square-root00266   /// instruction.00267   virtual bool haveFastSqrt
http://llvm.org/docs/doxygen/html/classllvm_1_1TargetTransformInfo.html#a01138d480dc0f9e11216e65d676a5bb9(Type
http://llvm.org/docs/doxygen/html/classllvm_1_1Type.html *Ty) const;


How does that pass from Rust ???

On Sun, Jan 12, 2014 at 11:51 AM, Owen Shepherd owen.sheph...@e43.euwrote:

 The Fast inverse square root is no longer fast. SSE implements accurate
 square root which is faster.

 Owen Shepherd
 http://owenshepherd.net | owen.sheph...@e43.eu


 On 12 January 2014 17:31, Carter Schonwald carter.schonw...@gmail.comwrote:


 http://static.rust-lang.org/doc/0.9/std/num/trait.Algebraic.html

 On Sunday, January 12, 2014, Thad Guidry wrote:

 Where is the fast inverse square root function in Rust ?
 http://en.wikipedia.org/wiki/Fast_inverse_square_root

 Anyone know if this semi-accurate function is at a hardware level and
 built in to Intel chipsets since MMX ?

 How does this affect LLVM and Rust compilation on 64 bit ?

 Thanks in advance,

 --
 -Thad
 +ThadGuidry https://www.google.com/+ThadGuidry
 Thad on LinkedIn http://www.linkedin.com/in/thadguidry/


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev





-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Properly licensing Rust documentation and wiki

2014-01-11 Thread Thad Guidry
I touched the wiki.  All Thad Guidry edits are Public Domain, of course.
 Or MIT/ASL2 license if you so desire.


On Fri, Jan 10, 2014 at 9:44 PM, Brian Anderson bander...@mozilla.comwrote:

 Hey.

 Time for more legal stuff. Per https://github.com/mozilla/rust/issues/5831the 
 licensing of our documentation is not clear. Like all things Rust we
 want to make our doc license as permissive as possible, so after getting
 some legal advice here is what I intend to do:

 * Rust documentation will be MIT/ASL2 licensed like everything else.
 * Add the license as a *footer* to existing in-tree documentation, under
 the argument that it is already licensed according to the same terms as the
 rest of the repo.
 * Gather new statements from wiki contributors asserting that they
 contrtibuted under the MIT/ASL2, as we did when we relicensed Rust.
 * Put the license as footers on all pages of the wiki.

 For the most part this should not affect anybody, though if you've ever
 touched the wiki you may recieve an email from me about this in the future.

 Regards,
 Brian
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] RFC: Future of the Build System

2014-01-10 Thread Thad Guidry
Best Reason ever for a Rust Build System = You Prove Rust Itself.

So get hacking on a Rust Build System.

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Porting rust to DragonFlyBSD

2014-01-07 Thread Thad Guidry
I am VERY interested in the support of this platform, DragonFlyBSD.  Which
is a great Systems OS in and of itself.

Thanks for your future efforts on it, Michael !

(BTW, in particular, I am interested in access to the HAMMER File System on
DragonFlyBSD to begin my experiments)



On Tue, Jan 7, 2014 at 10:10 AM, Alex Crichton a...@crichton.co wrote:

 The snapshots themselves are all static binaries in the sense that
 they have no dynamic rust dependencies and only the necessary system
 dependencies. Rustc does not generate 0-dependency static binaries
 right now that depend on libstd (as that would involve rewriting libc
 and writing a syscall interface for all platforms).

 When porting to a new architecture, the general idea is to add support
 in the compiler and standard libraries, then use cross compilation
 from a supported platform to generate a snapshot for the target
 platform, then take the snapshot and bootstrap on the target platform.

 A new platform hasn't shown up in awhile, but this sounds pretty cool!

 On Tue, Jan 7, 2014 at 7:37 AM, Michael Neumann mneum...@ntecs.de wrote:
  Hi there,
 
  At the moment rust only supports Linux/FreeBSD/Windows/MacOSX. I'd
 like to
  be
  able to compile it on DragonFlyBSD [1].
 
  I am trying to get the FreeBSD stage0/bin/rustc to run on DragonFly, yet
  with no success.
  Is it possible to generate a static rustc binary somehow? Or what in
 general
  is the procedure
  to port rustc to a different platform?
 
  Regards,
 
  Michael
 
  [1]: http://www.dragonflybsd.org/
  ___
  Rust-dev mailing list
  Rust-dev@mozilla.org
  https://mail.mozilla.org/listinfo/rust-dev
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] on quality success

2013-12-31 Thread Thad Guidry
Denis,

Long form email is not the best method of communication or to express your
design thoughts...I would suggest a blog link instead.

Also note that Patrick has asked the community numerous times...

Give specific alternative solutions of where you think Rust has made design
mistakes, preferably in bullet form so they can be addressed one at a time.
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Thoughts on the Rust Roadmap

2013-12-30 Thread Thad Guidry


 Libraries will follow a set of stability level guarantees that vary on a
 module-by-module basis. Stability encompasses both API level stability and
 semantic stability: if the semantics change in a way that is likely to
 break code, we'll introduce a new API instead of modifying a stable one.

 Patrick


+1 DEPRECATION, instead of removal.  Thad likes this.

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] How to search the mailing list archives

2013-12-04 Thread Thad Guidry
Actually, you do not have to change the article to thread...instead,
just CLICK on the Subject and you get the full thread discussion view.

Thanks for the tip Benjamin !  (search at the bottom ?  whatever.  everyone
is copying Firefox these days. :-)  )


On Tue, Dec 3, 2013 at 9:11 PM, Benjamin Striegel ben.strie...@gmail.comwrote:

 Apparently even Brian doesn't know how to do this, so I figured I'd share
 this tip.

 The rust-dev mailing list is archived here:

 http://thread.gmane.org/gmane.comp.lang.rust.devel/

 Use the search box at the bottom to search through the mailing list's
 archives since the beginning of time.

 When you click on a result, you will end up on a page like this:

 http://article.gmane.org/gmane.comp.lang.rust.devel/6778/match=dst

 ...which is pretty terrible from a navigation standpoint. But in that URL
 you can manually change the article bit on the front to thread, to
 yield this:

 http://thread.gmane.org/gmane.comp.lang.rust.devel/6778/match=dst

 ...which will let you easily browse a full conversation.

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Rust forum

2013-12-03 Thread Thad Guidry
Kevin is correct.

Where the real issue is that of knowing the capabilities of your particular
mail client and maximizing it to gain forum-like features.

Many folks use or prefer an online mail client that offers threading,
labels, archival search, etc.  Which are all the same features of a forum
that is proposed.

My suggestion would be instead of jumping to a forum... simply learn about
or find a more full featured mail client if you can.
If you cannot, then perhaps Gmane could benefit you in the same way.

Users benefit from the developers list and vice-versa... splitting us apart
would not be a wise choice.
-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Rust forum

2013-12-03 Thread Thad Guidry
Agreed with Martin.

It is my Opinion, but it might not be a good answer for you.

If the problem space is having a searchable mailing list archive... I think
we already have that in place,  Right Brian ?



On Tue, Dec 3, 2013 at 4:01 PM, Martin DeMello martindeme...@gmail.comwrote:

 keeping up with email is a lot easier than pretty much everything else,
 though. the solution to keeping old messages around is mirroring the
 mailing list to a searchable archive, not moving to a forum en masse and
 sacrificing ease-of-conversation for ease-of-recall.

 martin


 On Tue, Dec 3, 2013 at 1:58 PM, Gaetan gae...@xeberon.net wrote:

 Sorry but that is a pretty bad answer. You cannot tell people to change
 their favorite email client just for rust-dev.

 You cannot do the same with you client, just because each one will have
 to set its own set of rules to tag, ...

 Gmail is a pretty good client, but you have to remember the golden rules
 of email: email is forgotten once it is read. And you cannot search on
 emails you havent received...

 Self hosted forum is good, a good rust management in stack overflow is
 much better. If you know better sites, why not making some experiment and
 then vote for the better one.

 G.
 Le 3 déc. 2013 21:32, Thad Guidry thadgui...@gmail.com a écrit :

  Kevin is correct.

 Where the real issue is that of knowing the capabilities of your
 particular mail client and maximizing it to gain forum-like features.

 Many folks use or prefer an online mail client that offers threading,
 labels, archival search, etc.  Which are all the same features of a forum
 that is proposed.

 My suggestion would be instead of jumping to a forum... simply learn
 about or find a more full featured mail client if you can.
 If you cannot, then perhaps Gmane could benefit you in the same way.

 Users benefit from the developers list and vice-versa... splitting us
 apart would not be a wise choice.
 --
 -Thad
 +ThadGuidry https://www.google.com/+ThadGuidry
 Thad on LinkedIn http://www.linkedin.com/in/thadguidry/

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev





-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Removing some autoref magic

2013-11-20 Thread Thad Guidry


  may mutate `a`, while:
 
  let mut a = ~[y];
  push(a, b);
 
  will *not* mutate `a`. Do others have the same expectation?
 


But isn't there a missing context there ?  That 'a' does not necessarily
have to be mutable globally ?  But could be constrained... only in the
defined functions, or...traits...or ?

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Rust docs

2013-11-18 Thread Thad Guidry


 I tend to agree with this, think that a collaborative approach is unlikely
 to produce a consistent and high quality tutorial. I don't want to
 discourage anybody but my current opinion is that we should hire an
 experienced technical writer to do this piece especially, with input from
 the wider community. Where I think collaboration is more likely to produce
 something nice is in a 'cookbook' style document, of which several people
 have already worked on seperately. Also of course API docs and the
 reference manual are places where individuals can plug in their own
 sections without impacting the overall narrative flow.


So I spent this evening going through the tutorial (.08).  As an outsider
to Rust, I can tell you it does not fit any model of a tutorial, but
instead is an elongated language reference broken down into feature
sections.  Which is highly useful in its design, and does say This
tutorial assumes that the reader is already familiar with one or more
languages in the C family. Understanding of pointers and general memory
management techniques will help.  BUT...

It was not until section 17, that I finally met with a simple program that
could compile.  That was 2 1/2 hours later before I was able to DO
SOMETHING.

I would encourage the Mozilla team to hire a technical writer as Brian
suggests, that would turn the tutorial upside down...

Start with something fun and entertaining in under 10 or 20 lines of Rust,
that would amuse and provide hackability to tweak and play with values,
mutability, and seeing the stack pop itself (half the developers in the
world, do not know or have to worry about a stack..but of course should
in any decent systems language :-) ), and then introduce garbage
collecting, etc.   Introduce compile-able examples from the start, and
continue with working examples that actually produce errors and let the
user come to grips with the syntax  compiler error output, while coaching
them through fixing the errors, and learning the do's and don'ts of Rust's
current best practices.  That would be a mighty fine tutorial and the
makings of a book for Rust itself.

2 cents and a haircut and I wish the team tremendous success on finding a
talented writer,

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] The future of M:N threading

2013-11-14 Thread Thad Guidry
Great !  Glad to hear that the plan is to support both use cases by
abstracting M:N and 1:1 eventually.  That will go a long way towards my
later experiments with ETL (extract, transform, load) under various OS's
and multi-core architectures using parallel task flow (I still don't know
what I will call the flow type...lolol)

On Wed, Nov 13, 2013 at 11:50 PM, Brian Anderson bander...@mozilla.comwrote:

 Thanks for the great reply, Alex. This is the approach we are going to
 take. Rust is not going to move away from green threads; the plan is to
 support both use cases in the standard library.


 On 11/13/2013 10:32 AM, Alex Crichton wrote:

 The situation may not be as dire as you think. The runtime is still in a
 state
 of flux, and don't forget that in one summer the entire runtime was
 rewritten in
 rust and was entirely redesigned. I personally still think that M:N is a
 viable
 model for various applications, and it seems especially unfortunate to
 just
 remove everything because it's not tailored for all use cases.

 Rust made an explicit design decision early on to pursue lightweight/green
 tasks, and it was made with the understanding that there were drawbacks
 to the
 strategy. Using libuv as a backend for driving I/O was also an explicit
 decision
 with known drawbacks.

 That being said, I do not believe that all is lost. I don't believe that
 the
 rust standard library as-is today can support *every* use case, but it's
 getting
 to a point where it can get pretty close. In the recent redesign of the
 I/O
 implementation, all I/O was abstracted behind trait objects that are
 synchronous
 in their interface. This I/O interface is all implemented in librustuv by
 talking to the rust scheduler under the hood. Additionally, in pull
 #10457, I'm
 starting to add support for a native implementation of this I/O
 interface. The
 great boon of this strategy is that all std::io primitives have no idea
 if their
 underlying interface is native and blocking or libuv and asynchronous.
 The exact
 same rust code works for one as it does for the other.

 I personally don't see why the same strategy shouldn't work for the task
 model
 as well. When you link a program to the librustuv crate, then you're
 choosing to
 have a runtime with M:N scheduling and asynchronous I/O. Perhaps, though,
 if you
 didn't link to librustuv, you would get 1:1 scheduling with blocking I/O.
 You
 would still have all the benefits of the standard library's communication
 primitives, spawning primitives, I/O, task-local-storage etc. The only
 difference is that everything would be powered by OS-level threads
 instead of
 rust-level green tasks.

 I would very much like to see a standard library which supports this
 abstraction, and I believe that it is very realistically possible. Right
 now we
 have an EventLoop interface which defines interacting with I/O that is the
 abstraction between asynchronous I/O and blocking I/O. This sounds like
 we need a more formalized Scheduler interface which abstracts M:N
 scheduling vs
 1:1 scheduling.

 The main goal of all of this would be to allow the same exact rust code
 to work
 in both M:N and 1:1 environments. This ability would allow authors to
 specialize
 their code for their task at-hand. Those writing web servers would be
 sure to
 link to librustuv, but those writing command-line utilities would simply
 just
 omit librustuv. Additionally, as a library author, I don't really care
 which
 implementation you're using. I can write a mysql database driver and then
 you as
 a consumer of my library decided whether my network calls are blocking or
 not.

 This is a fairly new concept to me (I haven't thought much about it
 before), but
 this sounds like it may be the right way forward to addressing your
 concerns
 without compromising too much existing functionality. There would
 certainly be
 plenty of work to do in this realm, and I'm not sure if this goal would
 block
 the 1.0 milestone or not. Ideally, this would be a completely
 backwards-compatible change, but there would perhaps be unintended
 consequences.
 As always, this would need plenty of discussion to see whether this is
 even a
 reasonable strategy to take.


 On Wed, Nov 13, 2013 at 2:45 AM, Daniel Micay danielmi...@gmail.com
 wrote:

 Before getting right into the gritty details about why I think we should
 think
 about a path away from M:N scheduling, I'll go over the details of the
 concurrency model we currently use.

 Rust uses a user-mode scheduler to cooperatively schedule many tasks
 onto OS
 threads. Due to the lack of preemption, tasks need to manually yield
 control
 back to the scheduler. Performing I/O with the standard library will
 block the
 *task*, but yield control back to the scheduler until the I/O is
 completed.

 The scheduler manages a thread pool where the unit of work is a task
 rather
 than a queue of closures to be executed or data to be pass to a
 function. A
 task consists of a stack, register 

Re: [rust-dev] Rust docs

2013-11-14 Thread Thad Guidry
Corey,

Could we get that comments/feedback ability into the tutorial easily ?  I
agree that would be a good start in improving things.


On Thu, Nov 14, 2013 at 9:38 AM, Corey Richardson co...@octayn.net wrote:

 On Thu, Nov 14, 2013 at 10:03 AM, Daniel Glazman
 d.glaz...@partner.samsung.com wrote:
  The Tutorial is the entry point for all people willing to investigate
  Rust and/or contribute to Servo. I think that document is super
  precious, super-important. Unfortunately, I don't think it is really a
  tutorial but only a lighter manual. Examples are here even more
  important than in the case of the Manual above. A good Tutorial is
  often built around one single programming task that becomes more and
  more complex as more features of the language are read and
  known. Furthermore, the Tutorial has clearly adopted the language
  complexity of the reference manual, something that I think should be
  in general avoided. I also think all examples should be buildable
  and produce a readable result on the console even if that result is a
  build or execution error. That would drastically help the reader.
 
  All in all, I think the Tutorial needs some love and probably a
  technical writer who is not working on the guts of Rust, someone who
  could vulgarize the notions of the Manual into an easy-to-read,
  simple-to-experiment, step-by-step tutorial and avoiding in general
  vocabulary inherited from programming language science.
 

 I agree, partially. I think Rust for Rubyists fills this role quite
 well for now. Generally I  think the language tutorial should not try
 to hide complexity or paper over things, at the very least so it can
 be complete and correct. I think the Python tutorial is a good
 benchmark. We might even be able to rip off the Python tutorial's
 structure wholesale.

 The on-boarding process is still very rough. Maybe some sort of
 live-comment system would work well for finding pain points, where one
 can add comments/feedback while reading the tutorial.
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Danger of throwing exceptions through Rust code

2013-11-13 Thread Thad Guidry
In awe,

Niko does a fantastic job of breaking things down.  Give that guy a raise
already. ;)

And he brings the most important point of all in this discussion.
 Sometimes authors care and sometimes they don't

Maybe the important distinction is how the author wraps the library, to
bring about better failure semantics, regardless if the author needs them
or not, at least they are available to care about or not ?

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] RosettaCode.org and Color of a Screen Pixel

2013-11-12 Thread Thad Guidry
Curious if Rust has a way to get the Color of a Screen Pixel yet ?

http://rosettacode.org/wiki/Color_of_a_screen_pixel

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Please simplify the syntax for Great Justice

2013-11-11 Thread Thad Guidry
From the outside looking in...

I do not see anything preventing Greg from producing many macros or an
entire syntax sub-system to emulate and empower him with any sugary
languages that he might prefer or desire.  It is just going to be quite a
bit of work for him, but he could do it himself, if we wanted to turn
Rust's syntax into something closer to Type Clojure or create a DSL.

 Is that not true ?



On Mon, Nov 11, 2013 at 3:28 PM, Corey Richardson co...@octayn.net wrote:

 On Mon, Nov 11, 2013 at 4:07 PM, Greg g...@kinostudios.com wrote:
  I don't think Rust can succeed as a language if it massively differs,
  visually, from the language it intends to offset (C++).
 
  Yes, I agree, and that's why I wrote:
 
  By this point, I'm aware that this is unlikely to happen.
 
  I think it's still possible to simplify Rust's existing syntax while
  maintaining the features it offers.
 

 My point is that the familiar syntax *is* a feature. What
 simplifications do you propose? I think everyone is mostly happy with
 the syntax at this point, so your proposed changes and justification
 are going to be very pursuasive, and followed by a PR, for there to be
 a chance of them being accepted.
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Abandoning segmented stacks in Rust

2013-11-04 Thread Thad Guidry
Bill, memory is cheap.


On Mon, Nov 4, 2013 at 9:50 PM, Bill Myers bill_my...@outlook.com wrote:

 The advantage of segmented stacks is that blocked tasks only take up as
 much memory as they actually need to store state, so that for instance a
 network server can use a task for each connection, and still only use, say,
 64 bytes per connection if that's possible instead of the number of stack
 pages that got allocated for previous computation (assuming an extreme
 version that allocates a stack segment on every call).

 However, there is another approach that can replace segmented stacks for
 that purpose, namely having the compiler automatically transform blocking
 functions to instead return a future (with limited lifetime).

 This means that segmented allocation only happens for functions that
 indirectly perform I/O and only allocates the exact amount of memory needed
 to retain state that must persistent across the blocking I/O operation,
 while other functions execute normally using traditional stacks.

 The simplest example of this feature is async/await in C# 5, and Scala has
 a delimited continuation passing transformation that can be used to do the
 same thing.

 Has this been considered for Rust?


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] (no subject)

2013-11-01 Thread Thad Guidry
For my data experiments, I would rather like to see an LZ4 implementation
https://code.google.com/p/lz4/  (a lossless, very, very, very, very, very,
very, very, very fast decompression, with same compression - the very's are
dependent on how many cpu cores you have :-) ) and it's BSD licensed.

-- 
-Thad
+ThadGuidry https://www.google.com/+ThadGuidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Rust on Xen

2013-10-23 Thread Thad Guidry
THIS Anvil ? -- http://anvil.readthedocs.org/en/latest/topics/summary.html


On Wed, Oct 23, 2013 at 8:32 PM, Brian Anderson bander...@mozilla.comwrote:

 On 10/23/2013 07:59 AM, Dan Cristian Octavian wrote:

 has there been any discussion about this recently? is there any issue
 associated with it? How smooth is tackling the  problem of making
 unikernels out of rust code at the moment, given the state of the runtime?


 Not any further discussion along these lines, no. We saw Anil at OSCON and
 continued to agree that Rust would be great for this, but have not taken
 any steps. As Steve said though, a number of people are pursuing OS
 development in Rust.

 __**_
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/**listinfo/rust-devhttps://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Mozilla hiring a research engineer to work on Rust

2013-10-22 Thread Thad Guidry
And it looks like your still hiring for that LLVM Compiler engineer as well
!

https://careers.mozilla.org/en-US/position/o3VZWfwD


On Tue, Oct 22, 2013 at 6:40 PM, Brian Anderson bander...@mozilla.comwrote:

 Dear Rusties,

 Mozilla is going to hire another engineer to work on Rust! As we head
 toward Rust 1.0 we are looking for a motivated individual with serious
 chops to help us grind through the remaining blocking bugs. Enthusiasm for
 Servo will also be looked upon with great favor. See all the gory details
 here: 
 https://careers.mozilla.org/**en-US/position/oMiEXfwphttps://careers.mozilla.org/en-US/position/oMiEXfwp

 I look forward to reading all those lovely applications.

 Regards,
 Brian

 __**_
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/**listinfo/rust-devhttps://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Library for reading/writing Zip files

2013-10-03 Thread Thad Guidry
If an LZO library is not done already, that would be a good next step.

-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] average function

2013-09-25 Thread Thad Guidry


 Apparently, the version of Scott Lawrence is the fastest one, unless I
 made a mistake.


Longest code (and simplest to understand code)... FTW ! :)  (as usual)

-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] average function

2013-09-25 Thread Thad Guidry
wait a sec.. your cheating in the benchmark...

Why did you clone() the array for theirs and not Lawrence's ?

See here: https://gist.github.com/qznc/6704053#file-benchmark-L76



On Wed, Sep 25, 2013 at 4:07 PM, Thad Guidry thadgui...@gmail.com wrote:


 Apparently, the version of Scott Lawrence is the fastest one, unless I
 made a mistake.


 Longest code (and simplest to understand code)... FTW ! :)  (as usual)

 --
 -Thad
 Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
 Thad on LinkedIn http://www.linkedin.com/in/thadguidry/




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Problems with direct download of stage0 tarball

2013-09-24 Thread Thad Guidry
bah !!   found my problem... had the extra /dl/ in the path.

ignore this thread. :)


On Tue, Sep 24, 2013 at 10:43 AM, Thad Guidry thadgui...@gmail.com wrote:

 I cannot seem to download this tarball, for some reason:


 http://static.rust-lang.org/stage0-snapshots/dl/rust-stage0-2013-09-23-348d844-winnt-i386-7988b58a9530a4ac0688ec978e9124c5db56717c.tar.bz2

 ???

 --
 -Thad
 Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
 Thad on LinkedIn http://www.linkedin.com/in/thadguidry/




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Minimal raytracer

2013-09-24 Thread Thad Guidry
You think Rust (or any of them) is slow ?  Try raytracing by hand. :)


On Tue, Sep 24, 2013 at 5:20 PM, Kevin Ballard ke...@sb.org wrote:

 I ran them myself. Incidentally, the Rust version is absurdly slow if I
 don't specify an optimization level. Here's what I got:

 Clang (-O3): 7.99s real
 Go (improved version): 9.68s real
 Go (original version): 16.73s real
 Rust (--opt-level=3): 13.03s real

 (I ran each case 3 times and took the median)

 So if we discard the algorithmically-improved Go, then we get

 1) C++: 7.99s
 2) Rust: 13.02s
 3) Go: 16.73s

 I'm curious as to what difference using gccgo would make, but I didn't try
 (as I don't have GCC).

 -Kevin

 On Sep 24, 2013, at 2:48 PM, Huon Wilson dbau...@gmail.com wrote:

  On 25/09/13 04:13, Tim Kuehn wrote:

 To make it a fair fight, I converted the Go and C++ versions to trace
 Rust instead. These are my results on my Macbook Pro:

 === RUST ===
  $ rustc -O bin.rs
 $ time ./bin  rrays.ppm

  real 0m14.472s
 user 0m14.102s
 sys 0m0.365s

  === GO ===
  $ go build main.go
 $ time ./main  grays.ppm

  real 0m13.928s
 user 0m13.914s
 sys 0m0.020s

  === C++ ===
  $ gcc -O crays.cpp
 $ time ./a.out  crays.ppm

  real 0m10.800s
 user 0m10.794s
 sys 0m0.005s

  === RANKINGS ===
 1) C++ : 10.8s
  2) Go   : 13.9s
 3) Rust : 14.5s



 This surprises me a lot (the fact that Go is (1) faster than Rust, (2)
 it's only 20% slower than C++, compared to 150+% originally), so I
 investigated, and found that the Go is cheating with an algorithmic
 improvement:
 https://github.com/kid0m4n/gorays/commit/249f229ba8c769c38d7dc018acfdf29cc86d6e43

 If it's possible, could we re-run the benchmarks with the commit before
 that?

 Huon
  ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev



 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] rusti - the - repl renovation

2013-09-23 Thread Thad Guidry
Did you have a use case or situation in mind where you thought CUR should
 timeout?

 Jason


No situation, I also think CUR should wait forever for the same reasons.
 Just curious, thanks for explaining ctrl-c regarding SIGINT, makes sense.

-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Windows Users can build Rust properly again !

2013-09-23 Thread Thad Guidry
So, in my experiments tonight...

I had to have the following copied into stage0/bin in order to build with
mingw32 (gcc 4.8.1)

Older libstdc++-6.dll which I got from here:
http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/gcc-4.6.2-1/libstdc%2B%2B-4.6.2-1-mingw32-dll-6.tar.lzma/download

AND

libpthread-2.dll (which I created by copying  renaming pthreadGC2.dll )
... and now it builds just fine with i686-pc-mingw-32.

I also agree with klutzy that we should bundle them for now.  (and will
enjoy getting a Clang build version to work from stage0 + whenever we can
muster that origami)



On Fri, Sep 20, 2013 at 12:49 AM, klutzy klutzytheklu...@gmail.com wrote:

  I wonder if we should just bundle runtime libraries with the stage0
 snapshot in the future?

 I think we should bundle them: https://github.com/mozilla/rust/issues/9252

 On Thu, Sep 19, 2013 at 7:16 AM, Vadim vadi...@gmail.com wrote:
  Okay, looks like my mingw 4 fix went in last night.
 
  Here's my personal recipe for setting up mingw:
  1. Download and install mingw-get
  2. Install the required packages.  One can do this in GUI, but I prefer
 the
  command line, as it's less ambiguous:
   mingw-get install mingw-developer-toolkit
   mingw-get install mingw32-base
   mingw-get install mingw32-gcc-g++
   mingw-get install mingw32-libpthreadgc
   mingw-get install msys-wget
  3. Install GIT and Python, make sure they are on the PATH
  4. In MSYS shell:  ../configure; make check-fast
 
  Until stage0 snapshot compiler has been rebuilt with new mingw, stage0
  compilation will fail because latest mingw has wrong versions of the
 runtime
  libraries that rustc depends on.  So:
  5.. Get old versions of these dlls:
  mingw-get upgrade g++4.6
  mingw-get upgrade libpthread=2.8.0-3
  6.. Copy libgcc_s_dw2-1.dll, libstdc++-6.dll and libpthread-2.dll from
  %mingw%\bin into %build%\i686-pc-mingw32\stage0\bin.
  7. Roll mingw back to the latest:
  mingw-get upgrade
  8.. make check-fast
 
  I wonder if we should just bundle runtime libraries with the stage0
 snapshot
  in the future?
 
  Vadim
 
 
  On Mon, Sep 16, 2013 at 6:33 PM, Alex Crichton acrich...@mozilla.com
  wrote:
 
  Hey guys, so we're gonna hold off on upgrading the windows builders
 until
  we're 100% sure that we won't bork them with a mingw upgrade. What I
 think
  that we can do, on the other hand, is:
 
  1. Land Vadim's patch onto master
  2. I spin up a clean windows vm (need to do that anyway)
  3. Could you guys send me a list of instructions to build rust on the
  most recent mingw?
  4. Once verified, and possible bugs fixed, we can go upgrade the
 builders
  and documentation about mingw
 
  Ideally the build instructions would be:
 
  A. Acquire mingw.
  B. Acquire relevant gcc version 4.X
  C. ./configure  make
 
  It'd be awesome to keep it that simple, and it seems that your patches
  would have eliminated the need for patching system files?
 
  How does that sound to you guys?
 
  On Sep 16, 2013, at 6:20 PM, Vadim vadi...@gmail.com wrote:
 
 




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] RFC: Syntax for raw string literals

2013-09-20 Thread Thad Guidry
Does it HAVE to be a single typed char seen on the English 101 keyboard ?

History Lesson:
The industry in the very early, early days of printing, storing, and
processing characters, both English and non-English, came up with a
solution around the use of Control Characters.

ASCI Char 1 is known as Start Of Header, or abbreviated SOH.
ASCII Char 2 is known as Start of Text, or abbreviated STX.
ASCII Char 3 is known as End of Text, or abbreviated ETX.

It got me thinking of how various industries to this day still use Start of
Text and End of Text... what we are discussing as enclosing a String
verbatim.

Many data operations that I perform with conversion of string fields are
actually done by first wrapping with Control Chars [1] to enclose the
String LITERALLY.

Apple's Enterprise Partner Feed is an example that uses such basic Control
Chars to separate fields and interestingly uses multibyte EOL Control Chars
to retain even unicode contents (Foreign Language strings, that use quotes
of a different nature at times [2] and that sometimes appear in its fields
and that need to be retained inside a database field as well.)

I am wondering if doing something similar to that the industry does with
using Control Chars to represent a STX or ETX would not be even wiser to
subplant String Literal ?  i.e.  do not reinvent the fast spinning wheel
that also has built-in never go flat technology. :)

[1]
http://www.theasciicode.com.ar/ascii-control-characters/start-of-text-ascii-code-2.html
[2] http://en.wikipedia.org/wiki/Non-English_usage_of_quotation_marks

Thoughts ?

-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Windows Users can build Rust properly again !

2013-09-16 Thread Thad Guidry
Good Job on documenting the build steps, Dandy !  Closer and closer we get
to flawless building on Windows.


On Mon, Sep 16, 2013 at 1:51 AM, Aaron Dandy aaron.da...@live.com wrote:

 Klutzy helped me through a bunch of issues tonight and I am now building
 stage 2 from HEAD using GCC 4.8. I put the procedure I used up on the
 GitHub wiki for others to try and also linked it from the main getting
 started page: 
 https://github.com/mozilla/rust/wiki/Note-Building-Rust-Before-0.8-on-Windows-Systems
  .
 Huge thanks for Klutzy helping me out.

 Aaron@GIR /c/projects/rust/i686-pc-mingw32/stage2/bin
 $ rustc.exe hello.rs

 Aaron@GIR /c/projects/rust/i686-pc-mingw32/stage2/bin
 $ hello
 Hello, world.

  Date: Sun, 15 Sep 2013 14:33:41 +0900
  From: klutzytheklu...@gmail.com
  To: vadi...@gmail.com
  CC: rust-dev@mozilla.org
  Subject: Re: [rust-dev] Windows Users can build Rust properly again !

 
  The error is due to abi change of win32 gcc. reported here:
  https://github.com/mozilla/rust/issues/9205
 
  On Sat, Sep 14, 2013 at 4:52 PM, klutzy klutzytheklu...@gmail.com
 wrote:
   I've finished `make` on gcc 4.8.1, but `make check-fast` failed:
  
   task unnamed failed at 'assertion failed: `(left == right) 
   (right == left)`
   (left: `t_317::TwoU64s{one: 98784247808u64, two: 257698037760u64}`,
   right: `t_317::TwoU64s{one: 22u64, two: 94489280535u64}`)',
  
 C:\home\stone\rust-vanilla\src\test\run-pass\extern-pass-TwoU64s-ref.rs:27
   make: ***
 [i686-pc-mingw32/test/run_pass_stage2_driver-i686-pc-mingw32.out]
   Error 101
  
   I previously met this when I tested on mingw-w64/32bit.
   (https://github.com/mozilla/rust/issues/8996)
   Seems like the failure is related to recent gcc.
  
  
   On Sat, Sep 14, 2013 at 3:35 PM, klutzy klutzytheklu...@gmail.com
 wrote:
   some more explanation:
  
   #include fenv.h causes /lib/gcc/mingw32/ver/include/c++/fenv.h to
   be included.
   The header contains:
  
   #include bits/c++config.h
   #if _GLIBCXX_HAVE_FENV_H
   # include_next fenv.h
   #endif
  
   where bits/c++config.h is at
 /lib/gcc/mingw32/ver/include/c++/mingw32.
   However, for some reason (I don't know), they removed `#define
   _GLIBCXX_HAVE_FENV_H 1` somewhere between 4.6.2 and 4.8.1.
   so `#include_next fenv.h` does not occur, which is
   `/include/fenv.h`. It contains some definitions e.g. `FE_ALL_EXCEPT`.
  
   On Sat, Sep 14, 2013 at 3:25 PM, klutzy klutzytheklu...@gmail.com
 wrote:
   I've solved it some minutes ago :)
  
   klutzy at
 /path/to/mingw/lib/gcc/mingw32/ver/include/c++/mingw32/bits/c++config.h:
   klutzy there is #define _GLIBCXX_HAVE_FENV_H 1 in 4.6.1's header
   klutzy but there isn't [such #define] in 4.8.1 header.
   klutzy this causes /include/fenv.h not included when llvm does
   #include fenv.h
  
   The c++config.h has such lines:
   /* Define to 1 if you have the fenv.h header file. */
   /* #undef _GLIBCXX_HAVE_FENV_H */
  
   I added `#define _GLIBCXX_HAVE_FENV_H 1` at the file directly, and it
   works. We can't recommend users to do this hack though.
  
  
  
   On Sat, Sep 14, 2013 at 3:21 PM, Vadim vadi...@gmail.com wrote:
   Yes, but we can't check this into Rust repo. Maybe it can be worked
 around
   by -DWSAPOLLFD somewhere in makefiles...
  
   And just as a heads-up, these seems to be another problem,- with
 LLVM:
   http://sourceforge.net/p/mingw/bugs/2043/
  
   Vadim
  
   On Sep 13, 2013, at 9:16 PM, klutzy k klutzytheklu...@gmail.com
 wrote:
  
   Mingw added new winapi at mswsock.h:
  
   #if (_WIN32_WINNT = _WIN32_WINNT_VISTA)
   int WSAAPI WSAPoll(WSAPOLLFD, ULONG, INT);
  
   #endif
  
   but they forgot to add definition of WSAPOLLFD.
  
   Someone submitted patch at
 http://sourceforge.net/p/mingw/bugs/1980/
   but seems like it's not on mainstream.
  
   Anyway, we (including libuv) don't use the api. Removing the
 codeblock helps
   us.
  
   On Fri, Sep 13, 2013 at 3:19 PM, Vadim vadi...@gmail.com wrote:
  
   Hmm. Looks like mingw released a new version with gcc 4.8 and that
 somehow
  
   broke mswsock.h (though the file didn't change).
  
  
  
  
   On Thu, Sep 12, 2013 at 6:56 PM, Thad Guidry thadgui...@gmail.com
 wrote:
  
  
   Doesn't work...
  
  
   Errors regarding libuv and mswsock...
  
  
   http://pastebin.mozilla.org/3038909
  
  
  
  
   On Thu, Sep 12, 2013 at 5:06 PM, Vadim vadi...@gmail.com wrote:
  
  
   Hi Brian,
  
  
   Actually, I would argue that these changes *should* be made before
 0.8
  
   release in order to smoothen the path of people who will install
 0.8 to try
  
   it out.
  
  
   Regarding the work to be done, as far as I know all you need is:
  
   1. Save libgcc_s_dw2-1.dll and libstdc++-6.dll from %mingw%\bin
  
   2. mingw-get update
  
   3. mingw-get upgrade
  
   4. run %rust%\configure (not sure if actually needed, but won't
 hurt)
  
   5. make clean
  
   6. make check, which will fail at building stage1 std crate
 because
  
   step 3 upgraded libgcc and libstdc++ and stage0 compiler

Re: [rust-dev] Rust's newest full-time Engineer

2013-09-16 Thread Thad Guidry
Congrats Alex !  And thanks for patching up LLVM build and moving things
forward with Rust !

We still have over 1000+ things (issues) for you to steadily work on
so, grab some tea. :-)


On Mon, Sep 16, 2013 at 3:43 PM, Alex Crichton acrich...@mozilla.comwrote:

 Greetings rust-dev! I wanted to announce to everyone that today is my
 first day at Mozilla as an engineer working on Rust!

 I started using Rust last December for a project of mine, and once I got
 fed up with compiler errors I decided to try my hand at improving the
 compiler itself. The community was incredibly helpful in getting me on my
 feet contributing to rust, and it's been awesome seeing how rust and the
 community around it have evolved since I started working on it.

 I'm incredibly excited to have the opportunity to work on Rust with
 everyone who's been contributing, and I can't wait to help Rust reach 1.0
 even faster.
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] lib: Is anybody working on the datetime library?

2013-09-13 Thread Thad Guidry
Additionally,

Be able to convert bya to mya ?  http://en.wikipedia.org/wiki/Bya

The short scale is now commonly used, btw... but also need to deal with
this for conversions:

http://en.wikipedia.org/wiki/Long_and_short_scales

There should be a preference boolean for conversion output for short or
long scale... especially concerning above a thousand million.

That's enough to get you going with some wild ideas that Jodatime does not
handle.



On Fri, Sep 13, 2013 at 3:08 PM, Thad Guidry thadgui...@gmail.com wrote:

 One idea and use case for Paleontologists and Geologists coming over to
 Rust in droves... :-)

 Generically, just be able to handle simple Geologic addition and
 subtraction against an Epoch itself (reference date)
 http://en.wikipedia.org/wiki/Epoch_(reference_date) using known
 abbreviations.

 And additionally, store, understand, and output them:

 B.Y.B.P = Billion Years Before Present
 M.Y.B.P = Million Years Before Present




 On Fri, Sep 13, 2013 at 2:51 PM, Aaron Dandy aaron.da...@live.com wrote:

 I remember reading this article:
 http://noda-time.blogspot.com/2011/08/what-wrong-with-datetime-anyway.html a
 while back and really appreciating date time  time zone libraries. Also
 after reading news of the leap second triggering a bug on a bunch of
 systems I now question all assumptions I make about our representations of
 time. I can no longer say that a minute is 60 seconds long with a straight
 face. Next up I guess we programmers have a year 2038 problem to deal with
 too. This library will be a big deal to write but there thankfully there
 should be a lot of existing knowledge to learn from.

 --
 Date: Fri, 13 Sep 2013 15:10:21 -0400
 From: l...@debethencourt.com
 To: s...@scientician.net
 CC: rust-dev@mozilla.org
 Subject: Re: [rust-dev] lib: Is anybody working on the datetime library?


 Hello Bardur,

 Thank you so much for the reference resource of JSR-310 and its design
 docs.
 I looked over it briefly and it is indeed very valuable.

 It was listed in the wiki page, but the link was to the former home of it.
 I have updated it.

 Since nobody has claimed this module, I will start working on this module
 tomorrow Saturday.
 Is that OK?

 Please, please, I would love more comments and ideas. Will start asking
 for reviews once I have some code to show.

 Thanks,
 Luis





 On 13 September 2013 00:57, Bardur Arantsson s...@scientician.netwrote:

 On 2013-09-12 22:12, Luis de Bethencourt wrote:
  Hello everyone,
 
  I'm interested in helping with some module development. A good way to
 learn
  Rust by using it and help Rust at the same time.
 
  Of the wanted modules in this page:
  https://github.com/mozilla/rust/wiki/Libs
 

 I see that this page does have a link to design docs for JSR-310 which
 is probably a good bet as to a usable DateTime API design (for Java at
 least). I just thought I'd mention that the documentation for the
 nearly final (i.e. barring serious bugs) API has been released at:


 http://download.java.net/jdk8/docs/technotes/guides/datetime/index.html

 Even if this is for Java, the design decisions about how the conepts of
 date/time are modeled (Instant vs. *DateTime, Periods, Durations, etc.)
 would apply in any language. They are also all essential concepts when
 working seriously with date/time even though the distinctions may not
 appear so at first.

 (I should mention that the lead on the JSR-310 spec was also the author
 of JodaTime which gets much deserved credit by Java developers for
 bringing date/time manipulation on the JVM out of the dark ages of
 java.util.Date. JSR-310 is a slightly reworked/simplified version of
 that API, so it's a sort of what are the essentials? version of
 JodaTime.)

 Regards,


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev



 ___ Rust-dev mailing list
 Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




 --
 -Thad
 Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
 Thad on LinkedIn http://www.linkedin.com/in/thadguidry/




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] lib: Is anybody working on the datetime library?

2013-09-13 Thread Thad Guidry
One idea and use case for Paleontologists and Geologists coming over to
Rust in droves... :-)

Generically, just be able to handle simple Geologic addition and
subtraction against an Epoch itself (reference date)
http://en.wikipedia.org/wiki/Epoch_(reference_date) using known
abbreviations.

And additionally, store, understand, and output them:

B.Y.B.P = Billion Years Before Present
M.Y.B.P = Million Years Before Present




On Fri, Sep 13, 2013 at 2:51 PM, Aaron Dandy aaron.da...@live.com wrote:

 I remember reading this article:
 http://noda-time.blogspot.com/2011/08/what-wrong-with-datetime-anyway.html a
 while back and really appreciating date time  time zone libraries. Also
 after reading news of the leap second triggering a bug on a bunch of
 systems I now question all assumptions I make about our representations of
 time. I can no longer say that a minute is 60 seconds long with a straight
 face. Next up I guess we programmers have a year 2038 problem to deal with
 too. This library will be a big deal to write but there thankfully there
 should be a lot of existing knowledge to learn from.

 --
 Date: Fri, 13 Sep 2013 15:10:21 -0400
 From: l...@debethencourt.com
 To: s...@scientician.net
 CC: rust-dev@mozilla.org
 Subject: Re: [rust-dev] lib: Is anybody working on the datetime library?


 Hello Bardur,

 Thank you so much for the reference resource of JSR-310 and its design
 docs.
 I looked over it briefly and it is indeed very valuable.

 It was listed in the wiki page, but the link was to the former home of it.
 I have updated it.

 Since nobody has claimed this module, I will start working on this module
 tomorrow Saturday.
 Is that OK?

 Please, please, I would love more comments and ideas. Will start asking
 for reviews once I have some code to show.

 Thanks,
 Luis





 On 13 September 2013 00:57, Bardur Arantsson s...@scientician.net wrote:

 On 2013-09-12 22:12, Luis de Bethencourt wrote:
  Hello everyone,
 
  I'm interested in helping with some module development. A good way to
 learn
  Rust by using it and help Rust at the same time.
 
  Of the wanted modules in this page:
  https://github.com/mozilla/rust/wiki/Libs
 

 I see that this page does have a link to design docs for JSR-310 which
 is probably a good bet as to a usable DateTime API design (for Java at
 least). I just thought I'd mention that the documentation for the
 nearly final (i.e. barring serious bugs) API has been released at:

http://download.java.net/jdk8/docs/technotes/guides/datetime/index.html

 Even if this is for Java, the design decisions about how the conepts of
 date/time are modeled (Instant vs. *DateTime, Periods, Durations, etc.)
 would apply in any language. They are also all essential concepts when
 working seriously with date/time even though the distinctions may not
 appear so at first.

 (I should mention that the lead on the JSR-310 spec was also the author
 of JodaTime which gets much deserved credit by Java developers for
 bringing date/time manipulation on the JVM out of the dark ages of
 java.util.Date. JSR-310 is a slightly reworked/simplified version of
 that API, so it's a sort of what are the essentials? version of
 JodaTime.)

 Regards,


 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev



 ___ Rust-dev mailing list
 Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] Windows Users can build Rust properly again !

2013-09-12 Thread Thad Guidry
I have updated and added new steps (Step 5) that correctly install the
needed pthread libraries for Windows users of MinGW.

Rust now correctly compiles Stage0, Stage1, Stage2 out of the box
 following the updated guide here:
https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust


The new package details for the pthread libraries provided from 'mingw-get
show' , for those interested are below:


Package: mingw32-libpthread-old   Subsystem: mingw32
Components: dll

POSIX threading library for Win32
-

pthreads-w32 seeks  to  provide  a  freely  available  and  high-quality
implementation  of  pthreads for Windows. Pthreads is an API for writing
multithreaded applications following the POSIX standard.

The  mingw32-libpthread-old  package  provides  the  MinGW  pthreads-w32
runtime  dll  associated  with  MinGW  GCC  4.5.2  and  older. Due to an
unfortunate naming choice, upgrading to newer GCC will also install  the
newer,  renamed  pthreads-w32  DLLs, removing the old DLL. While the may
not affect the new GCC, threaded applications compiled using  the  older
compiler  will break, as they will miss this runtime library. Therefore,
the old runtime library is provided  here  using  a  new  package  name:
mingw32-libpthread-old,  so that it can be (re)installed parallel to the
new pthreads-w32 runtime libraries.


Package: mingw32-libpthreadgc Subsystem: mingw32
Components: dll

POSIX threading library for Win32
-

pthreads-w32 seeks  to  provide  a  freely  available  and  high-quality
implementation  of  pthreads for Windows. Pthreads is an API for writing
multithreaded applications following the POSIX standard.

There are two mingw32 versions of the pthread-w32 runtime  library:  the
standard  one,  provided by this package, is called libpthreadgc but may
also be referred to as  'libpthread'.  The  non-standard  one  uses  C++
exception handling, and is called libpthreadgce. (Note that the standard
library may be used successfully with C++ code;  indeed,  on  most  *nix
platorms  the  system  pthreads  implementation  follows the behavior of
mingw32-libpthreadgc, and NOT the behavior of  the  'GCE'  version).  We
recommend  that  most  users rely on mingw32-libpthreadgc ('GC') and not
mingw32-libpthreadgce ('GCE').

The mingw32-libpthreadgc and mingw32-libpthreadgce packages provide  the
two  runtime libraries (most people need not install the 'GCE' one). The
associated mingw32-pthreads-w32 package provides the  documentation  for
the  pthreads-w32 library, as well as the related development files. The
mingw32-libquserex  package  provides  optional  support  for   enhanced
standards conformance of the GCE runtime.

mingw32-libpthreadgc is a  required  component  of  the  MinGW  Compiler
Suite.

-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Windows Users can build Rust properly again !

2013-09-12 Thread Thad Guidry
Yes, that's the game plan I have...and klutzy and Vadim getting the
mingw-w64 toolchain working.


On Thu, Sep 12, 2013 at 4:10 PM, Brian Anderson bander...@mozilla.comwrote:

  On 09/12/2013 12:39 PM, Thad Guidry wrote:

 Yeah, there should not be a reason anymore, if I am correct, to not have
 GCC 4.7 in MinGW for Rust Windows users anymore.  I will give that a try
 also , and if it works, then we can close out 
 (#8598https://github.com/mozilla/rust/issues/8598
 ).  (I also would like to get rid of the 4.5 downgrade needed) but
 that does need more testing from the core Rust team and others.

  It's something that Brian has been counting on me to help make happen,
 and Alex is also contributing to some of that effort by fixing various LLVM
 build issues that affect Windows Rust users as you mention in 
 (#8598https://github.com/mozilla/rust/issues/8598
 ).

  Agreed, if a new stage0 compiler snapshot can be created, then we should
 be in the clear to also close out 
 #5878https://github.com/mozilla/rust/issues/5878
 .



 Thanks for everybody's amazing contributions to our Windows support. If
 somebody makes the changes necessary to work with a newer toolchain then we
 will upgrade the bots. It's unlikely we can do this before 0.8 though, due
 in two weeks.

 I gather that some folks would like to switch to the mingw-w64 toolchain
 as well. Is that in the cards here?

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Windows Users can build Rust properly again !

2013-09-12 Thread Thad Guidry
Doesn't work...

Errors regarding libuv and mswsock...

http://pastebin.mozilla.org/3038909



On Thu, Sep 12, 2013 at 5:06 PM, Vadim vadi...@gmail.com wrote:

 Hi Brian,

 Actually, I would argue that these changes *should* be made before 0.8
 release in order to smoothen the path of people who will install 0.8 to try
 it out.

 Regarding the work to be done, as far as I know all you need is:
 1. Save libgcc_s_dw2-1.dll and libstdc++-6.dll from %mingw%\bin
 2. mingw-get update
 3. mingw-get upgrade
  4. run %rust%\configure  (not sure if actually needed, but won't hurt)
 5. make clean
 6. make check, which will fail at building stage1 std crate because step
 3 upgraded libgcc and libstdc++ and stage0 compiler needs them.
 7. copy dlls saved in step 1 into %rust%\build\i686-pc-mingw32\stage0\bin
 8. make check again, which should succeed this time

 Can somebody please verify that this works?


 Re mingw-w64: sort of works, however its' phtreads implementation seems
 to be 
 buggyhttps://github.com/mozilla/rust/issues/8996#issuecomment-24292739.
 Also see this 
 threadhttp://sourceforge.net/mailarchive/forum.php?thread_name=CAKEnbTNV4iDok-k9Gg-Wmr85utFPxLf4wmAabjJZ1WaCFVE5PQ%40mail.gmail.comforum_name=mingw-w64-public.
 I don't think we'll should migrate to it just yet.

 Vadim



 On Thu, Sep 12, 2013 at 2:10 PM, Brian Anderson bander...@mozilla.comwrote:

  On 09/12/2013 12:39 PM, Thad Guidry wrote:

 Yeah, there should not be a reason anymore, if I am correct, to not have
 GCC 4.7 in MinGW for Rust Windows users anymore.  I will give that a try
 also , and if it works, then we can close out 
 (#8598https://github.com/mozilla/rust/issues/8598
 ).  (I also would like to get rid of the 4.5 downgrade needed) but
 that does need more testing from the core Rust team and others.

  It's something that Brian has been counting on me to help make happen,
 and Alex is also contributing to some of that effort by fixing various LLVM
 build issues that affect Windows Rust users as you mention in 
 (#8598https://github.com/mozilla/rust/issues/8598
 ).

  Agreed, if a new stage0 compiler snapshot can be created, then we
 should be in the clear to also close out 
 #5878https://github.com/mozilla/rust/issues/5878
 .



 Thanks for everybody's amazing contributions to our Windows support. If
 somebody makes the changes necessary to work with a newer toolchain then we
 will upgrade the bots. It's unlikely we can do this before 0.8 though, due
 in two weeks.

 I gather that some folks would like to switch to the mingw-w64 toolchain
 as well. Is that in the cards here?

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev



 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] changing roles

2013-08-30 Thread Thad Guidry
Graydon,

So what does not drain you ?  What kicks you into high gear and keeps you
salivating for more ?

Many of us do not know you personally, and knowing a bit more about what
really interests you, would open a few of our eyes on the list.

(thanks for your efforts)


On Fri, Aug 30, 2013 at 8:57 PM, Brian Anderson bander...@mozilla.comwrote:

 On 08/30/2013 05:05 PM, Graydon Hoare wrote:

 Hi,

 As I'm sure many of you who know me are aware, my role as technical lead
 on Rust has been quite draining over the years. Both to myself and to those
 I've worked with, it just isn't a great fit for me.

 In recognition of this, I am stepping aside to work elsewhere in the
 organization, and Brian will be assuming the role of technical lead of Rust.


 This news is bittersweet to say the least. The language that you invented
 and that I adore has come so very far under your leadership, and I hope
 that we can continue to build on the example you have set.

 It's been an enriching experience working with you, Graydon, and I wish
 you the best on your next project.

 -Brian

 __**_
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/**listinfo/rust-devhttps://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] rustdoc_ng status: all items extracted

2013-08-05 Thread Thad Guidry
But why is cool coming up with so many search hits ?  lololol


On Mon, Aug 5, 2013 at 4:04 AM, Gareth Smith garethdanielsm...@gmail.comwrote:

 Great work, I like the search already. Thanks!


 On 05/08/13 06:53, Corey Richardson wrote:

 Hi all,

 I'm very excited to announce that rustdoc_ng now extracts and
 jsonifies crates completely in their entirety. Yay! Jordi has been
 doing some awesome work with the frontend, even adding a search. See
 http://seld.be/rustdoc/master/**index.htmlhttp://seld.be/rustdoc/master/index.html,
 for its current state.

 There's still a bunch of work to do, but all of it can be implemented
 with plugins. The cleaned crate is sendable, and in theory it should
 be generically encodable, but I don't know how to sling
 extra::serialize, so if anyone could lend a hand with that, that'd be
 cool.
 __**_
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/**listinfo/rust-devhttps://mail.mozilla.org/listinfo/rust-dev


 __**_
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/**listinfo/rust-devhttps://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Java versus .NET style for acronyms in type names

2013-08-05 Thread Thad Guidry
On Mon, Aug 5, 2013 at 1:40 PM, Josh Leverette coder...@gmail.com wrote:

 Better even than the toggle mode caps style of gc/gcMut? (assuming mut
 is an abbreviation here, if it's an acronym, then it would be gc/gcMUT)

 But of course, looks are purely subjective. The key is objective
 comparison. Pure .NET style loses information about whether something is an
 acronym or an abbreviation, and that information can be useful.


Josh,

I would argue that the information is NOT lost... GcMut still means
something somewhere, and the information of which is merely moved over
to another, better place, in the form of documentation like
http://seld.be/rustdoc/master/index.html...which can be easily searched and
parsed itself...and linked to other data and the greater Semantic Web, tag
and vocabulary systems, etc.

-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Java versus .NET style for acronyms in type names

2013-08-03 Thread Thad Guidry
Everyone is already telling you.  (And Brian is on a crusade for the cause
already)

Make distinguishing words in a long string...easier to interpret and read.

Some of those words in a long string are abbreviations and acronymns.

Deciding when its an abbreviation, an acronym, a suffix, affix, prefix,
etc, etc... makes your brain work harder.  We as programmers try to make
lives, Easier.

So, we should make it easier on ourselves as well.

+1 for 1st uppercase letter on words, abbreviations, and acronyms. (.NET
Style)



On Sat, Aug 3, 2013 at 3:53 AM, Jens Nockert j...@nockert.se wrote:


 On 3 Aug 2013, at 03:28, Patrick Walton pwal...@mozilla.com wrote:

  Thoughts/straw poll?

 I prefer (and use) Java-style, I think it looks slightly better. But
 that's probably my ObjC background talking.
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] MPS investigation for Rust GC

2013-07-29 Thread Thad Guidry
REGARDING:
- Graydon wants to investigate using the Memory Pool System as the Rust GC,
  rather than a bespoke one. The
[MPS](http://www.ravenbrook.com/project/mps/) is
  a very mature and robust memory management library.

Reading through and seeing one of the MPS creators initial design goals :

The MPS was not designed for C++, but as a memory manager for dynamic
language run-time systems. In fact, it was specifically designed not to
require C++.

...instantly gained my respect for this system and its potential.

-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] Great summary of Windows Compiler Toolchain Options

2013-07-27 Thread Thad Guidry
I recently found the QT project has a great summary of the state of things
for Windows users concerning Toolchains and Compiler choices supporting
Exception Handling and their differences.

http://qt-project.org/wiki/MinGW-64-bit

-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] 'in' for for loops and alloc exprs

2013-07-27 Thread Thad Guidry
Ian, Graydon, Community,

I am fairly NEW to programming in current languages at all... So I am a
great guinea pig for testing all these conversations about What would a
beginner to Rust...or even programming languages in general think about
this ?  I personally think that dot notation is fine, and I have learned
why others, such as yourself, think that using dot notation might bring
some unfamiliarity in using it.  It does not rub me the wrong way, and has
a functional order to it, but that is because my background way, way back
when, was only with functional languages.

In the end, folks have preferences, primarily based on what your used to
using that did not make your brain explode trying to understand it, and
made you fairly productive.  In this case, I would hope that the language
design is decided by not a majority vote wins, but what represents a
pleasant taste in the mouth 90% of the time when programming Rust, no
matter their background.  I would encourage the community to repeat good
designs, and stretch out against bad designs and debated language
preferences that folks have.  You cannot please everyone, but a good goal
would be that 90% pleasant taste in the mouth.  That's not trademarked,
so your free to use that Graydon, if necessary. :-)

So, back to the original thread subject you brought up...

Re-using in seems to also leave a pleasant taste in my mouth, simply
because I do not have a high preference, and am easily adaptable.  I find
that if you can design a language that reads fairly well, WORKS AS
DOCUMENTED, and as a bonus is intuitive for 90% of the folks that read 50%
of the docs or less...then you've got a winning language design.

(and I would not hope that your sealing up the language just yet - since
there is no high visibility, in production system that is using it - but I
do understand the causal effects of introducing more keywords in this later
stage of design)



On Sat, Jul 27, 2013 at 11:40 AM, Ian P. Cooke i...@informatic.io wrote:


 On Jul 27, 2013, at 10:48 , Zoltán Tóth zo1...@gmail.com wrote:

 Then the coder can drop the pattern part without making the wording weird:

 loop 10.times() { ... }


 This syntax has always bugged me.  I always read it as send the message
 'times' to the object named '10' but 10 is an integer literal and integers
 don't have behavior.  The '10.times()' syntax makes it look to the reader
 that he's observing a conversation with a number rather than a dictation of
 the actions that 'self' is about to perform.  I know Smalltalk and Ruby use
 similar syntax but I feel like they're also wrong to do so.  I like any of
 the following:

 for i in 1..10 {}
 for i in range(10) {}
 for _ in range(10) {} //if you don't care about the index of the iteration
 for i in range(1, 20, 2) {}

 all of which are more clear to me.  Something as core as control flow
 should have a simple syntax without object-oriented-looking, DSL-type
 cleverness.

 I don't intend to start a debate on the merit of any the various syntax
 choices but this thread made me want to assure at least one
 anti-'10.times()' opinion was heard :)

 My motivation is actaully something different: I feel this order more
 intuitive. I during coding generally like to be able to write the code in
 the order that I think. When I want to write a loop, first I think about
 that I want to iterate over some collection. Only after that do I think
 about a suitable name for the loop_variable / iterator. I understand that
 most programming languages use the pattern expr order and that
 programmers are used to it, but I think to be be intuitive is more
 important than to be similar, especially for a new language.


 I do agree with this.  SQL has a similar issue:

 FROM t SELECT x, y, z

 makes more sense (and as such can get more context-sensitive help) than

 SELECT x, y, z FROM t.

 Microsoft's Linq gets this order right IMO.  In fact, Linq is pretty
 awesome in general (
 http://msdn.microsoft.com/en-us/library/vstudio/bb397906.aspx,
 http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b ) although my
 opinion is mostly academic there.  Having language-level support for the
 notion of a query would be incredibly useful to me (unifying local and
 remote collections).

 -ipc

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] 'in' for for loops and alloc exprs

2013-07-25 Thread Thad Guidry
I also like 'do 10,times {' , since I likely would also use it to create
multiple copies (one after the other).  A lazy sequence for my purposes
dealing with data generation.

Just to clarify, 'do 10.times {' would NOT allow launching multiple copies
in parallel, correct ?  (that's reserved for Actor styles, etc, etc.)  Just
simple repetition, as you say ?


On Thu, Jul 25, 2013 at 3:46 PM, Benjamin Striegel
ben.strie...@gmail.comwrote:

  If we did that, we'd lose the ability to break or return, since 'do'
 doesn't follow the for-style loop protocol.

 I'm perfectly happy with that; the `times` method was never about complex
 control flow, just simple repetition. `do 10.times {` is a delightfully
 self-explanatory contract.

 And just as evidence that `do` notation is useful beyond `spawn`:

 $ git grep do .*{ -- *.rs | wc -l
 2019
 $ git grep do .*spawn -- *.rs | wc -l
 274

  we're likely to switch that to a macro call that passes
 explicitly-captured arguments into a thunk struct that owns the explicit
 captures

 I don't remember seeing much of this idea in the meeting notes, but I do
 remember seeing it mentioned in these blog posts (for those who want more
 context):

 http://smallcultfollowing.com/babysteps/blog/2013/05/30/removing-procs/
 http://smallcultfollowing.com/babysteps/blog/2013/06/03/more-on-fns/

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Removing codemap::spannedT

2013-07-15 Thread Thad Guidry
 (spannedT predates having traits at all, so if there's a better way to
 approach this in current idioms, go right ahead)

 -Graydon


Oooo, That's a good thing to know and have documented somewhere in the
tutorial under Traits as a note.  Can you add that Daniel ?
I mean the idiom difference that Graydon is mentioning between the two.
 That would be good to have as a note in the tutorial.

-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Incremental and generational GC

2013-07-11 Thread Thad Guidry
 * Objects in the borrowed set are grayed before each incremental GC slice.


*mutator*

In a 
garbage-collectedhttp://www.memorymanagement.org/glossary/g.html#garbage.collection
system,
the part that executes the user code, which
allocateshttp://www.memorymanagement.org/glossary/a.html#allocate
 objects http://www.memorymanagement.org/glossary/o.html#object and
modifies, or *mutates*, them.

For purposes of describing incremental garbage
collectionhttp://www.memorymanagement.org/glossary/i.html#incremental.garbage.collection,
the system is divided into the *mutator* and the
*collector(2)http://www.memorymanagement.org/glossary/c.html#collector-2
*. These can be separate threads of computation, or interleaved within the
same thread.

The user code issues allocation requests, but the allocator code is usually
considered part of the collector. Indeed, one of the major ways of
scheduling the other work of the collector is to perform a little of it at
every allocation.

While the mutator mutates, it implicitly
freeshttp://www.memorymanagement.org/glossary/f.html#free-1
 storage http://www.memorymanagement.org/glossary/s.html#storage by
overwriting 
referenceshttp://www.memorymanagement.org/glossary/r.html#reference
.

How will Rust deal with the mutator (the part that modifies user code and
mutates it ) ?  From a high level, will it be run as separate computation
threads or within the same computation thread ?

-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] 64-bit Windows

2013-07-04 Thread Thad Guidry
Luqman and I found out today some interesting bits from the mngw guys on
IRC...

I'm going to continue documenting what I find on the Wiki page
https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust

under a new 64bit Windows building section.

But here is the info so far:

(
I set my MinGW64 path with a statement at the bottom of my
MinGW/msys/1.0/etc/proifle with
# Enable MinGW64 path
export
PATH=/c/mingw-builds/x64-4.8.1-win32-seh-rev1/mingw64/bin:/usr/local:$PATH
)

From what we gathered the mingw-w64 toolchain installer [1] works well with
the following easy installer settings:

Install path is C:\mingw-builds

Version: (to be determined what the max version of GCC to be that build
correctly ? at 4.8.1 currently)
Architecture: x64
Threads: win32
Exception: seh
Build revision: (whichever latest for mingw-w64)

This was based on our conversation with jon_y in mingw channel.

[snip]
jon_y: be aware that if you use the posix thread gcc, all your code will
depend on the pthred dll whether you actually use pthreads or not
jon_y: libgcc itself pulls in pthreads
Thad: for our Rust (Windows) users...we'd choose win32 threads
Thad: we instruct them on how to build it within the MinGW/Msys environment
on our wiki
jon_y: sure, the link I gave you will not support C++11 threads
Thad: jon luqman says we don't need them. he would know.
jon_y: ok
Thad: so I think just the win32 thread with SEH for Win64 host is ideal
Thad: thanks so so much
jon_y: try to use the installer
Thad: yeah a simple switch for that... easy
jon_y: rather than pointing users to the link directly
Thad: yeah, agree we will... I'll write it up and modify our step by
step for Windows users today. Thanks !
jon_y: c++11 threads is the only reason you'd use the posix thread gcc on
windpws
jon_y: *windows
jon_y: np
Thad: Ill also make a note about that as well.

[1] - http://sourceforge.net/projects/mingwbuilds  (green button download
installer.exe)




On Thu, Jul 4, 2013 at 7:37 PM, James Miller aa...@aatch.net wrote:

 On 2013-07-04 10:02:29, Graydon Hoare wrote:
  On 13-07-03 11:32 PM, Lilly Matsson wrote:
  Hello!
  
  I recently made a post on Reddit
  (http://www.reddit.com/r/rust/comments/1hk25r/rust_on_64bit_windows_7/)
  asking about 64-bit Windows support, and kibwen urged me to post here to
  start some kind of discussion about the current state of 64-bit Windows
  support.
  
  So, what is the deal? What needs to be done to fully get 64-bit support
  for Windows? As I understand it, it has to do with LLVM.
 
- Add a new target and host config in the makefiles.
 
- Fiddle with the target-specific data layout string in
  librustc::back
 

 I'm currently working on stuff related to these two points at the moment,
 for
 the record. Basically moving the current target-handling stuff all to one
 place
 and making it run through a `~Target` trait object. This is based off of
 the
 related code in Clang currently.

 The code I currently have will _theoretically_ support every major
 platform,
 with there currently being code for MingW32, Cygwin and Win32 separately.
 From what I can tell, 64-bit MinGW is still considered to be MinGW32, just
 on a
 64-bit architecture (This is based on the fact that the LLVM target triple
 code
 doesn't have a 'mingw64' entry).

 This means that when I'm done, it should be pretty easy to port to a new
 platform just by updating some build files and fixing any breakage.

 --
 James Miller
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] 64-bit Windows

2013-07-04 Thread Thad Guidry
Incidentally, the mingw guys plan to have x32 SEH (not just x64 SEH)
working and available in 2014... something about letting a Borland patent
having to expire...


On Thu, Jul 4, 2013 at 8:25 PM, Thad Guidry thadgui...@gmail.com wrote:

 Luqman and I found out today some interesting bits from the mngw guys on
 IRC...

 I'm going to continue documenting what I find on the Wiki page
 https://github.com/mozilla/rust/wiki/Note-getting-started-developing-Rust

 under a new 64bit Windows building section.

 But here is the info so far:

 (
 I set my MinGW64 path with a statement at the bottom of my
 MinGW/msys/1.0/etc/proifle with
 # Enable MinGW64 path
 export
 PATH=/c/mingw-builds/x64-4.8.1-win32-seh-rev1/mingw64/bin:/usr/local:$PATH
 )

 From what we gathered the mingw-w64 toolchain installer [1] works well
 with the following easy installer settings:

 Install path is C:\mingw-builds

 Version: (to be determined what the max version of GCC to be that build
 correctly ? at 4.8.1 currently)
 Architecture: x64
 Threads: win32
 Exception: seh
 Build revision: (whichever latest for mingw-w64)

 This was based on our conversation with jon_y in mingw channel.

 [snip]
 jon_y: be aware that if you use the posix thread gcc, all your code will
 depend on the pthred dll whether you actually use pthreads or not
 jon_y: libgcc itself pulls in pthreads
 Thad: for our Rust (Windows) users...we'd choose win32 threads
 Thad: we instruct them on how to build it within the MinGW/Msys
 environment on our wiki
 jon_y: sure, the link I gave you will not support C++11 threads
 Thad: jon luqman says we don't need them. he would know.
 jon_y: ok
 Thad: so I think just the win32 thread with SEH for Win64 host is ideal
 Thad: thanks so so much
 jon_y: try to use the installer
 Thad: yeah a simple switch for that... easy
 jon_y: rather than pointing users to the link directly
 Thad: yeah, agree we will... I'll write it up and modify our step by
 step for Windows users today. Thanks !
 jon_y: c++11 threads is the only reason you'd use the posix thread gcc on
 windpws
 jon_y: *windows
 jon_y: np
 Thad: Ill also make a note about that as well.

 [1] - http://sourceforge.net/projects/mingwbuilds  (green button download
 installer.exe)




 On Thu, Jul 4, 2013 at 7:37 PM, James Miller aa...@aatch.net wrote:

 On 2013-07-04 10:02:29, Graydon Hoare wrote:
  On 13-07-03 11:32 PM, Lilly Matsson wrote:
  Hello!
  
  I recently made a post on Reddit
  (http://www.reddit.com/r/rust/comments/1hk25r/rust_on_64bit_windows_7/
 )
  asking about 64-bit Windows support, and kibwen urged me to post here
 to
  start some kind of discussion about the current state of 64-bit Windows
  support.
  
  So, what is the deal? What needs to be done to fully get 64-bit support
  for Windows? As I understand it, it has to do with LLVM.
 
- Add a new target and host config in the makefiles.
 
- Fiddle with the target-specific data layout string in
  librustc::back
 

 I'm currently working on stuff related to these two points at the moment,
 for
 the record. Basically moving the current target-handling stuff all to one
 place
 and making it run through a `~Target` trait object. This is based off of
 the
 related code in Clang currently.

 The code I currently have will _theoretically_ support every major
 platform,
 with there currently being code for MingW32, Cygwin and Win32 separately.
 From what I can tell, 64-bit MinGW is still considered to be MinGW32,
 just on a
 64-bit architecture (This is based on the fact that the LLVM target
 triple code
 doesn't have a 'mingw64' entry).

 This means that when I'm done, it should be pretty easy to port to a new
 platform just by updating some build files and fixing any breakage.

 --
 James Miller
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




 --
 -Thad
 Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
 Thad on LinkedIn http://www.linkedin.com/in/thadguidry/




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Segmented stacks (was: IsRustSlimYet (IsRustFastYet v2))

2013-07-04 Thread Thad Guidry
On Windows there's a better way than DWARF or SJLJ to catch exceptions I
learned today. (I have no idea what I am talking about, but here goes from
what I read...)

Windows uses it's own exception handling mechanism known as SEH.  GCC
supports SEH on Win64 (and has plans I think later for Win32?)

More info in the answer here:
http://stackoverflow.com/questions/15670169/what-is-difference-between-sjlj-vs-dwarf-vs-seh/15685229#15685229

and issues here: http://comments.gmane.org/gmane.comp.gcc.help/44153


On Thu, Jul 4, 2013 at 5:33 PM, Patrick Walton pwal...@mozilla.com wrote:

 On 7/4/13 12:58 PM, Daniel Micay wrote:

 You can create many threads with fixed stacks, they just start off
 using 4K instead of however much smaller our segmented stacks will be.
 A scheduler will just be more expensive than a regular lightweight
 task.

 The 15-100% performance hit from segmented stacks pushes Rust well out
 of the systems language niche. I think it does have to change if Rust
 plans on ever fitting in the niche that C, C++ and D do.


 I agree. The sole benefit of segmented stacks on modern OS's that lazily
 allocate pages is that, on 32-bit, you can avoid running out of address
 space with many tasks. This is counterbalanced by these disadvantages:

 1. There is no way for the compiler or runtime to know ahead of time how
 much stack any given task will need, because this is based on dynamic
 control flow.

 2. The consequence of overshooting (choosing a stack size that is too big)
 is that the benefit above is reduced.

 3. The consequence of undershooting (choosing a stack size that is too
 small) is disastrous performance. In the limit, the performance degrades to
 something like what many Schemes and SML/NJ do, in that stack frames are
 malloc'd from the heap. Except that Scheme and SML/NJ have precise
 generational garbage collectors with bump allocators in the nursery, and we
 have C malloc(). Furthermore, stack segment allocation is the slow path in
 C malloc, because it's in a high storage class. So performance becomes
 abysmal in the slow path. Unlike systems like Erlang and Cilk, there is no
 way to relocate stack segments in Rust because of unmanaged interior
 pointers: Erlang could at least in theory correct its mistakes and keep
 stacks contiguous (although I don't know if the implementation does). So
 the best we can do is cache and hope for the best--but too much caching
 increases memory usage and decreases the benefits of stack segments!

 4. The benefit above is significantly reduced when calling into C code,
 and all solutions to this either hurt the benefit more or significantly
 penalize the FFI.

 I think that segmented stacks just don't work. *Relocatable* stacks may
 work, but not in Rust. From what I have read, Walter Bright and Rob Pike
 agree.

 At this point I'd like to suggest just allowing the user to choose a stack
 size on a per-task basis, and failing if the stack size is exceeded.
 Basically `__morestack` would turn into `fail`.

 Brian has pointed out to me that, currently, running out of stack has to
 abort the whole process, because the DWARF unwinder doesn't consider
 `__morestack` a may-throw position and as a result the arguments would
 leak. There are a number of ways we could fix this, ranging from principled
 to hacky. But for now I think aborting on stack exhaustion wouldn't be the
 end of the world (although others may disagree).

 Patrick

 __**_
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/**listinfo/rust-devhttps://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Remove `float` from the language

2013-07-02 Thread Thad Guidry
History lesson,

The correct term to use is really floating point register.  But the idea
of a float that is being tossed in this discussion is really a float
variable.

This is what Graydon is talking about I pretty sure:
http://www.gnu.org/software/gsl/manual/html_node/Examining-floating-point-registers.html

There is a difference in terminology depending on WHAT you are really
talking about, but it appears that Graydon rocks it old school, as we all
should when discussing the register capabilities themselves of the
hardware (in years past an FPU... in current architectures a SIMD capable
processor.)

Besides all these terms are in the IEEE standards anyways
http://en.wikipedia.org/wiki/IEEE_floating-point_standard

(class dismissed) ;-)


On Tue, Jul 2, 2013 at 1:07 AM, Daniel Micay danielmi...@gmail.com wrote:

 On Tue, Jul 2, 2013 at 1:09 AM, Robert O'Callahan rob...@ocallahan.org
 wrote:
  Seems to me you could quantify the performance impact of variable-width
  types. E.g. try making 'int' 32-bit on a 64-bit architecture and see how
  much it hurts. I'm suspicious they're a premature optimization.
 
  Rob

 The int and uint types match the pointer size, and if they aren't the
 same size the existing standard library (including things like
 vectors) won't work.
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
Thad on Freebase.com http://www.freebase.com/view/en/thad_guidry
Thad on LinkedIn http://www.linkedin.com/in/thadguidry/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] tree maintenance

2013-06-24 Thread Thad Guidry
 Thanks again for everyone's patience. I remain convinced that having
 automatic integration is worth much more than a free-for-all on the tree,


That alone is worth more than 20 new active developers, I would say.

Thanks for your hard work on this Graydon, and team !

-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Rust on microcontrollers and embedded systems

2013-06-21 Thread Thad Guidry
I would rather see Atmel AVR or ARM Cortex M0 as targets.

Also, would low voltage, low power 8-bit targets with under 512KB ram be
impossible ?




On Fri, Jun 21, 2013 at 10:20 AM, Thomas Daede daede...@umn.edu wrote:

 Hello,

 I'm relatively new to Rust, and this is the first time I've posted on
 this list. For my senior honors thesis, I would like to improve Rust
 so that it can be used on microcontrollers and other small embedded
 systems. This is a sector dominated by C and has seen little change
 for quite a while, due to most other languages not meeting the unique
 requirements. Besides being constrained in RAM and CPU power, the
 program binary also generally runs directly out of NOR Flash based
 ROM, so that the binary code itself takes no RAM space. This precludes
 most JIT based systems - interpreter based languages take less RAM,
 but are also very slow.

 Rust is in many ways a very good fit for microcontrollers. Its memory
 safety is very useful for many different applications, and helps
 greatly for task isolation on systems without memory protection. In
 addition, memory allocation is explicit so the programmer can choose
 where best to allocate the RAM - important for things like avoiding
 the GC in sensitive code regions. And of course, there are all the
 other benefits that Rust has compared to C in general.

 However, Rust isn't ready for microcontrollers yet. Here's what I plan
 to implement, in order:
 - Static linking for runtime and Core crate
 - Compiling runtime and Core without thread support
 - Adding compatibility with the newlib C library
 - Adding configurable stack allocation
 - Adding arm-none-eabi target
 - Wrappers around a native C peripheral library, such as libopencm3

 This should be the bare minimum to get a demo up and running. I plan
 to target the STM32F4 series of microcontrollers initially, using
 libopencm3's linker scripts, and the C compiler and linker from
 gnu-arm-embedded. I know there has been some work to remove the
 dependency on the core and runtime libraries, however it seems
 difficult to strip them out entirely, and I think they are useful
 enough that I would rather port them instead.

 I would like to know if anyone else has tried this yet, or has
 comments about how this should be implemented.

 - Thomas Daede
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Rust on microcontrollers and embedded systems

2013-06-21 Thread Thad Guidry
I was thinking more of Industrial systems VS. Gadgetry  Robotics projects.

No problems.  Getting support for the M0 will be important long term is
what I am saying.


On Fri, Jun 21, 2013 at 10:53 AM, Thomas Daede daede...@umn.edu wrote:

 On Fri, Jun 21, 2013 at 10:33 AM, Thad Guidry thadgui...@gmail.com
 wrote:
  I would rather see Atmel AVR or ARM Cortex M0 as targets.
 
  Also, would low voltage, low power 8-bit targets with under 512KB ram be
  impossible ?
 

 Where are you finding 8-bit targets with 512KB ram? Generally they
 have 8K or less. The highest end device I plan to work on only has
 192KB of RAM.

 ARM Cortex-M0 is very similar to Cortex-M4 - it's a subset of ARMv6
 rather than ARMv7 technically, so it needs different compiler options
 to LLVM, but I would like to support it too. It's easier to develop on
 the M4 though, just because of the RAM - ST sells a devkit for $15
 that includes a processor with 1MB of Flash and 192KB of SRAM. Once I
 get it working there, I'll probably add support for the M3 and M0/M0+
 too.

 AVR doesn't have a LLVM backend, nor do I think one would be
 worthwhile, when vendors like NXP are selling Cortex-M0 chips for
 under $1.00. The ARM NVIC is also a lot nicer and it should be
 relatively easy to implement interrupt routines in pure Rust (with a C
 method signature)




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] tree maintenance

2013-06-18 Thread Thad Guidry
On Tue, Jun 18, 2013 at 10:28 AM, Graydon Hoare gray...@mozilla.com wrote:

 On 13-06-17 06:21 PM, Thad Guidry wrote:

 Nice.

 Will there also be a Snapshot for 64 bit Windows ?


 Unfortunately nobody has spent the requisite time to enable the mingw-w64
 port yet. I saw some rumblings of it but there's no support in-tree for it
 yet. Similarly, no support for clang-only win32/64 nor msvc32/64.


Right,  OK, I remember that I should be trying to spend some time with
getting a mingw-w64 port.  (My Cygwin adventures had detoured towards that)
 So, I probably need to go back and work my way up that food chain (tool
chain) again but with my (now working properly and documented on the wiki
now...) MinGW installation.


 When there's support for any of these variants, yes, absolutely.


OK, so if I pull off a nice port to enable mingw-w64 then you (we) will
support it as a Snapshot.  Gotcha.

Thanks,

-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] tree maintenance

2013-06-17 Thread Thad Guidry
Nice.

Will there also be a Snapshot for 64 bit Windows ?


On Mon, Jun 17, 2013 at 7:57 PM, Graydon Hoare gray...@mozilla.com wrote:

 Hi,

 As part of preparation for 0.7 (due around the end of june / early july)
 we're going to be closing the tree for a while, fixing the lingering
 breakage that's snuck through 'auto' and accumulated on 'master', and
 greatly widening the 'auto' coverage such that this stuff doesn't build
 up anymore.

 For now, bors is turned off and the tree is closed. Fear not though:
 this should ultimately improve life for everyone. More coverage, better
 differential testing, less chasing ghosts.

 Thanks for your patience. It'll be back asap (along with a snapshot!)

 -Graydon
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] code generation and rustc speed

2013-06-15 Thread Thad Guidry
From a holistic approach, does this problem point to :

1. More LLVM tweaking in general is needed ?

2. More use of libraries and better libraries are needed ?

3. Both 1 and 2 ?


On Sat, Jun 15, 2013 at 3:26 AM, Graydon Hoare gray...@mozilla.com wrote:

 I saw some more speculation on how to make rustc not-so-terriby-slow to
 compile today, including dramatic structural changes like splitting it into
 sub-crates. Please don't do this; it's papering over much more readily
 solvable problems. A 80kloc library does not need to be generating 16mb of
 object code.

 Here are two simple listings of symbols we're generating:

 http://people.mozilla.org/~**graydon/symbols-by-size.txthttp://people.mozilla.org/~graydon/symbols-by-size.txt
 http://people.mozilla.org/~**graydon/symbols-by-name.txthttp://people.mozilla.org/~graydon/symbols-by-name.txt

 Some things should be immediately apparent:

   - We're generating some (not all) _very_ large functions.
 Look at ty::mk_ctxt. It's a single constructor call.
 It produces 133kb of code. This has got to be some quadratic
 codegen bug.

   - There are 15762 functions but only 2039 unique function-sizes.
 We're not collapsing a _lot_ of identical functions.

 - We're generating a _lot_ of monomorphic instances.
   There are 363 hashtable:: functions in there -- about 50 copies
   of the std::hashtable module. Similar number of copies of
   std::vec. 68 copies of extfmt::conv_poly. 392 visit:: functions.

 - We're still generating a _lot_ of glue. Very little of it
   seems to be properly recycled -- there are many copies of
   each glue for types that vary only in a not-used type param,
   of identical size. 7134 of the 15762 functions are glue.

 Beyond all that, there are pretty apparent systemic taxes as soon as you
 start digging into the LLVM. Take a look at, say,
 http://people.mozilla.org/~**graydon/graph.svghttp://people.mozilla.org/~graydon/graph.svg--
  the CFG from middle::trans::inline::maybe_
 **instantiate_inline for example. It's a very modest 100-line function
 with 3 or 4 of nested matches. It produces 687 CFG nodes, 903 edges, and
 8068 LLVM instructions (and that's a _small_ one -- it only winds up as 7k
 of object code). There are a lot of things in there that shouldn't be
 being-generated.

 -Graydon
 __**_
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/**listinfo/rust-devhttps://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Scheduler and I/O work items for the summer

2013-06-01 Thread Thad Guidry

 I know that Rust currently doesn't currently support this, but what if
 futures could use a custom allocator?   Then it could work like this:

 1. Futures use a custom free-list allocator for performance.
 2. The I/O request allocates new future object, registers uv event, then
 returns unique pointer to the future to its' caller.  However I/O manager
 retains internal reference to the future, so that it can be resolved once
 I/O completes.
 3. The future object also has a flag indicating that there's an
 outstanding I/O, so if caller drops the reference to it, it won't be
 returned to the free list until I/O completes.
 4. When I/O is complete, the future get resolved and all attached
 continuations are run.


 Vadim


Brian,

Vadim described the idea fairly well there with the meat of my idea being #
2.  I was just trying to describe the scenario that # 4 be able to happen
only when all the registered event(s) happen (not just 1 blocking step but
perhaps many blocking steps).

I would not know where to start mocking something like that with Rust
yet... still beginning.

-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Scheduler and I/O work items for the summer

2013-05-31 Thread Thad Guidry

 ## Design and implement some solution for select / async events

 We need a way to efficiently wait on multiple types of events at once,
 including port receives, I/O reads, socket accepts, timers. This has some
 very complicated requirements to satisfy, as detailed in the linked issue,
 and I'm not sure what the right abstractions are here. This is super
 important and the biggest risk to the whole effort. If anybody has opinions
 about this topic I would love to hear them.

 https://github.com/mozilla/**rust/issues/6842https://github.com/mozilla/rust/issues/6842


My 2 cents worth nothing :-) and I've replied inside the issue with the
same idea... It seems to be very similar in tone to what Vadim described
for .NET asyncs where you wait for a timeout or all operations (steps) to
complete from an abstract view.

This idea comes out of the Data Architect world that I live in. It's more
along the lines of that basic idea that your pitching which I call
receivership.

In Pentaho Data Integration, there is a process step called Block this
step until steps finish. What it does is Block a single step in an
execution flow until a selected step or even multiple steps somewhere in
the chain or process has completed it's execution and returned a True for
it's execution complete flag where a launched listener is waiting and
watching.

It's a generic wrapper if you will, for additional next steps to perform,
but those next steps do not get called, do not get any input, and no
variables are passed to them until the child Blocking step has seen from
(there's a listener process launched for each step or steps choosen to
watch) all its parent or parents steps somewhere say that it's own
execution has finished and lets the listener know. I think the Block this
step until steps finish just waits for all those listeners it is watching
to say it's OK to proceed with it's own set of next steps.
-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Summer of Code 2013: Rust Debug Symbol Generation

2013-05-29 Thread Thad Guidry
Best of luck Michael and thanks for tackling this objective !

The only quick advice I have is too let you know that Eclipse can be a nice
frontend for GDB itself, in case your not aware...
http://dpc.ucore.info/blog/2013/02/06/eclipse-as-an-excellent-gdb-frontend/



On Wed, May 29, 2013 at 10:01 AM, Michael Wörister 
michaelwoeris...@gmail.com wrote:

 Hi everyone,
 I wanted to quickly introduce myself here. My name is Michael Woerister
 and I was accepted for Rust's Google Summer of Code project this year,
 regarding debug symbol generation for rustc.

 I've been following the Rust project for a while now and I'm really proud
 that I can be a part of it. Rust already is a beautiful language and I hope
 to be able to use it a lot in the future. It's great to get this
 opportunity of contributing some to its progress!

 A bit about the project:
 Debugger support for Rust is very rudimentary at the moment. LLVM allows
 for producing debug symbols during code generation but for this to work the
 LLVM IR has to be annotated correctly with metadata. Some of this is
 already implemented in librustc/middle/trans/debuginfo.rs but quite a
 few things are still missing. At the same time the language is still
 evolving and like other parts of the compiler the debug symbol code has to
 keep up. Also new LLVM versions come with their needs for adaption.

 My task over the summer will be to extend the code in debuginfo.rs to
 also handle things like enums, traits, and closures, and just as important,
 write more unit tests so the 5 lonely files in test/debug-info get some
 company. The goal is that at the end of summer we will be able to debug
 rustc itself with gdb.

 I will post my weekly project updates to my github page:
 http://michaelwoerister.github.io (nothing there yet)

 I am grateful for any advice or comments. Also, I want to thank my 'GSoC
 mentor' Josh Matthews who has been nothing but helpful so far :-)

 Cheers,
 Michael

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] A case for removing rusti

2013-05-29 Thread Thad Guidry
RUST RUN.  FTW. :-)


On Wed, May 29, 2013 at 4:29 PM, John Clements cleme...@brinckerhoff.orgwrote:


 On May 29, 2013, at 10:32 AM, Graydon Hoare wrote:

 ...
 
  I agree that a 'rust run' command, or indeed exploiting our support for
  shebang comments[1], should be sufficient for most users. But I'm not
  convinced the repl serves no purpose, yet (though it's true, I don't use
  seem to ever use it; I also write surprisingly little rust code these
  days). People ask for it, and it doesn't really bend the language any to
  support it. It _is_ a code-maintenance cost, of course, so I'm also
  curious what others think in terms of the balance of costs/benefits.

 My vote: dump it. This might sound surprising from a Schemer, but probably
 not from a Racketeer. Making the top-level work correctly soaked up far too
 much time in the Racket environment. There's nothing more infuriating than
 getting something to work in the REPL and then discovering that it doesn't
 work in compiled code… unless it's struggling for weeks to get something to
 work in the REPL, only to discover that it works just fine in compiled code.

 I think that the principal use case for a REPL is interactive exploration
 of what rust programs mean, and I think that the best way to support this
 is to have a nice clean rust run, and possibly some sugar that makes
 evaluating and printing the result of a single expression more convenient.

 My opinion only.

 John

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] MinGW and Rust for Windows Users

2013-05-05 Thread Thad Guidry
I asked the libuv folks on their IRC channel and this was Mr. Fontaine's
response:

tjfontaine irc://freenode/tjfontaine,isnickfor some reason that compile
line doesn't have the include directory, you should really take that up
with the rust folk.


On Sun, May 5, 2013 at 12:13 AM, Thad Guidry thadgui...@gmail.com wrote:


 So, I went back to MinGW and managed to get a compiler chain for Windows 7
 64bit working with mingw64 and using MingGW / Msys and additionally I was
 able to get the Wget gui to actually work correctly... so in essence,
 Windows users will have a nice gui like interface to install the Unix tools
 they need for the compiler chain.  In the Msys terminal window, you just
 type mingw-get and it launches the gui.

 The only thing that is not packaged up in the gui as a mouse click away is
 the actual headers and CRT for Mingw64 for gcc to use.  The headers/CRT is
 currently a separate download and has to be unzipped into the C:\MinGW
 folder.

 LLVM seemed to get built just fine under Release+Asserts it says.

 Libuv is a different matter... it can't find uv.h for whatever dasterdly
 reason, even though it is sitting right there under its foot

 C:/MinGW/msys/1.0/home/Thad/rust/src/libuv/include/uv-private  (folder)
 C:/MinGW/msys/1.0/home/Thad/rust/src/libuv/include/uv.h  (file)

 Here's the paste and asking the community for help on what next  ? ..

 http://pastebin.mozilla.org/2375997

 --
 -Thad
 http://www.freebase.com/view/en/thad_guidry




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] MinGW and Rust for Windows Users

2013-05-05 Thread Thad Guidry
Worked with Mr. Fontaine on ensuring that it was a Rust issue and not Libuv
issue ... we built and tested Libuv under my Mingw sys and tested just fine
with this output and verified by him as OK.

http://pastebin.mozilla.org/2377431


On Sun, May 5, 2013 at 1:55 PM, Thad Guidry thadgui...@gmail.com wrote:

 I asked the libuv folks on their IRC channel and this was Mr. Fontaine's
 response:

 tjfontaine for some reason that compile line doesn't have the include
 directory, you should really take that up with the rust folk.


 On Sun, May 5, 2013 at 12:13 AM, Thad Guidry thadgui...@gmail.com wrote:


 So, I went back to MinGW and managed to get a compiler chain for Windows
 7 64bit working with mingw64 and using MingGW / Msys and additionally I was
 able to get the Wget gui to actually work correctly... so in essence,
 Windows users will have a nice gui like interface to install the Unix tools
 they need for the compiler chain.  In the Msys terminal window, you just
 type mingw-get and it launches the gui.

 The only thing that is not packaged up in the gui as a mouse click away
 is the actual headers and CRT for Mingw64 for gcc to use.  The headers/CRT
 is currently a separate download and has to be unzipped into the C:\MinGW
 folder.

 LLVM seemed to get built just fine under Release+Asserts it says.

 Libuv is a different matter... it can't find uv.h for whatever dasterdly
 reason, even though it is sitting right there under its foot

 C:/MinGW/msys/1.0/home/Thad/rust/src/libuv/include/uv-private  (folder)
 C:/MinGW/msys/1.0/home/Thad/rust/src/libuv/include/uv.h  (file)

 Here's the paste and asking the community for help on what next  ? ..

 http://pastebin.mozilla.org/2375997

 --
 -Thad
 http://www.freebase.com/view/en/thad_guidry




 --
 -Thad
 http://www.freebase.com/view/en/thad_guidry




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] lib: regular expressions in std

2013-05-04 Thread Thad Guidry
Devin,

I personally would like to see a Rust regex engine.  It could also serve as
a new reference standard going forward with the language design where
additional tests could be bound to it.  A win - win in my opinion for
proving the language design in the first place.

Java, Python, and Ruby, to name a few...share very similar syntax styles or
flavors.
You can scroll down this page to see the subtle differences between all the
flavors, including those 3.
http://www.regular-expressions.info/refflavors.html

I am sure you have intentions to develop the Rust regex engine to have a
very similar flavor, so I am not worried personally.  Just cover the basics
with that aligned Rust regex flavor and most folks will be quite happy,
everything else can be easily looked up in a reference, as is usually the
case for most developers, unless you live and breath regex everyday.

Unicode Level 1 and with most of Level 2 would be a requirement in my
opinion.  It is the world we live in today, thankfully, at last. :)




On Sat, May 4, 2013 at 8:54 AM, Devin Jeanpierre jeanpierr...@gmail.comwrote:

 With regards to  https://github.com/mozilla/rust/issues/3591 , I'd
 like to write a regular expression module for Rust. I've written a
 couple of regular expression engines in Python for fun in the past[*],
 and #rust pressured me to utilize my perverse sense of fun to write
 the same for Rust. Actually, the reason I learned Rust was to port a
 bunch of my regex code to a nice language. :)

 I'm writing this email because
 https://github.com/mozilla/rust/wiki/Library-editing told me to. I
 don't know much about the process, but as I understand it this marks
 the beginning of a one week discussion period where Rust-Dev fleshes
 out ideas for such a module, and whether or not it deserves to be
 written, and whether or not I should be the one writing it.

 I've also added this library page to the wiki:
 https://github.com/mozilla/rust/wiki/Lib-re


 I've already discussed this somewhat with some people in #rust,
 especially Marvin Löbel (kimundi) has been interested in helping me
 come up with a nice API. Hopefully we can put that down in writing
 here so that it isn't just in our memory.


 Some questions to start off with:

 - Should rust have a new regex engine written in Rust, or should it
 just have bindings for e.g. RE2 or similar?

 A point brought up in #rust: if we use RE2 or similar, we may not
 be able to have a re!() syntax extension that compiles regexps at
 the same time as the surrounding rust code.

 I prefer the former, because I wanted to write a new regex engine
 regardless. I would be perfectly happy to write some nice bindings
 for something like RE2, but I am probably not the best person to do it.

 - What syntax/semantics are important?

 I would propose supporting the usual PCRE syntax and semantics
 (including submatch extraction), but with the exception of
 backreferences and any other features which cannot be implemented
 efficiently (i.e. polynomial time).

 RE2 has a good summary of regex syntax, although it doesn't
 specify for PCRE-family syntax whether it comes from perl, libpcre,
 python, or something else.

 http://code.google.com/p/re2/wiki/Syntax

 Note: if rust's re module is efficient, syntaxes for things like
 possessive quantifiers is pointless and can be dropped.

 It may be desirable to include alternate parse disambiguation
 strategies. Using efficient RE, it's fairly easy to support
 POSIX-style longest match, as well as PCRE-style matches and even
 shortest match. For example, RE2 offers support for PCRE-style and
 also POSIX style regex matching.

 - How important is Unicode support and how broad should that support be?

 My understanding is that, at least as long as it can be added
 later, this is not crucial to get right correct right away.

 Unicode TR-18 defines 3 levels of Unicode support in regex
 implementations, of which only the first two are relevant. I think the
 only thing missing from core::unicode to give level 1 support is
 simple case folding.

 * https://github.com/mozilla/rust/issues/5820
 * http://www.unicode.org/reports/tr18/


 That's probably enough to start off with, especially since the answer
 to question 1 ties our hands on everything afterwards. Also since my
 hands hurt from typing. However, there's a lot of other topics, like
 what the API should look like, whether or not to support various
 syntaxes, etc.. I've added a lot of links and a few additional topics
 to the library proposal page.

 link again: https://github.com/mozilla/rust/wiki/Lib-re

 Let me know if there's something I've left out of here or of the
 library proposal page. When there's more discussion / I have more
 energy, I will suggest some of my personal ideas of what I'd like in a
 regex module, but somehow I don't feel that's appropriate at the top
 level post.

 

[rust-dev] MinGW and Rust for Windows Users

2013-05-04 Thread Thad Guidry
So, I went back to MinGW and managed to get a compiler chain for Windows 7
64bit working with mingw64 and using MingGW / Msys and additionally I was
able to get the Wget gui to actually work correctly... so in essence,
Windows users will have a nice gui like interface to install the Unix tools
they need for the compiler chain.  In the Msys terminal window, you just
type mingw-get and it launches the gui.

The only thing that is not packaged up in the gui as a mouse click away is
the actual headers and CRT for Mingw64 for gcc to use.  The headers/CRT is
currently a separate download and has to be unzipped into the C:\MinGW
folder.

LLVM seemed to get built just fine under Release+Asserts it says.

Libuv is a different matter... it can't find uv.h for whatever dasterdly
reason, even though it is sitting right there under its foot

C:/MinGW/msys/1.0/home/Thad/rust/src/libuv/include/uv-private  (folder)
C:/MinGW/msys/1.0/home/Thad/rust/src/libuv/include/uv.h  (file)

Here's the paste and asking the community for help on what next  ? ..

http://pastebin.mozilla.org/2375997

-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] What parts of libuv are used ? why ?

2013-05-03 Thread Thad Guidry
Looks like libuv is a showstopper currently for me on Windows Cygwin
building.

Why is it used ?  Should it be ?  Will it be in the future ?

Can someone throw up a quick paragraph or 2 about this on the wiki and let
me know ?

Thanks in advance !

-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] LLVM Clang and Cygwin happiness (not quite yet)

2013-05-01 Thread Thad Guidry
Thanks to the incredible outpouring of support from the community on IRC to
help me get Cygwin supported, tonight I had somewhat better success... as I
have been patching my way through Rust's source with the help from those
incredible IRC folks.  Thanks guys and gals !

We have been adding if define's etc... for __CYGWIN__  such as... #if
defined(__WIN32__)|| defined(__CYGWIN__) etc... and also patched
rust_task.h to support Cygwin RED_ZONE_SIZE, all of which might need
further tweaks... but anyways...

We have hit a snag that we are not sure what to do about... error during
make with GCC 4.5.3 (not Clang, since there will be other issues to address
there later) on Cygwin ...

http://pastebin.mozilla.org/2367675

Thoughts ?

-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] LLVM Clang and Cygwin happiness (not quite yet)

2013-05-01 Thread Thad Guidry
This FAQ has most of those answers, Corey, just scroll down it to see the
API and Programming Questions : http://cygwin.com/faq/


On Wed, May 1, 2013 at 10:47 PM, Corey Richardson co...@octayn.net wrote:

 On Wed, May 1, 2013 at 11:34 PM, Thad Guidry thadgui...@gmail.com wrote:
  Thanks to the incredible outpouring of support from the community on IRC
 to
  help me get Cygwin supported, tonight I had somewhat better success...
 as I
  have been patching my way through Rust's source with the help from those
  incredible IRC folks.  Thanks guys and gals !
 
  We have been adding if define's etc... for __CYGWIN__  such as... #if
  defined(__WIN32__)|| defined(__CYGWIN__) etc... and also patched
 rust_task.h
  to support Cygwin RED_ZONE_SIZE, all of which might need further
 tweaks...
  but anyways...
 
  We have hit a snag that we are not sure what to do about... error during
  make with GCC 4.5.3 (not Clang, since there will be other issues to
 address
  there later) on Cygwin ...
 
  http://pastebin.mozilla.org/2367675
 
  Thoughts ?
 
  --
  -Thad
  http://www.freebase.com/view/en/thad_guidry
 

 It seems libuv has no support for cygwin as a platform. Is it possible
 to compile native win32 apps using cygwin, as one would with mingw? I
 am unfamiliar with cygwin and windows in general.




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] LLVM Clang and Cygwin happiness (not quite yet)

2013-05-01 Thread Thad Guidry
I have mingw64 installed.  See my Cygwin Setup screenshot here:
https://docs.google.com/file/d/0B533WzlrxWraSHgzdVpGM29WQ1k/edit?usp=sharing


On Wed, May 1, 2013 at 10:56 PM, Corey Richardson co...@octayn.net wrote:

 On Wed, May 1, 2013 at 11:49 PM, Thad Guidry thadgui...@gmail.com wrote:
  This FAQ has most of those answers, Corey, just scroll down it to see the
  API and Programming Questions : http://cygwin.com/faq/
 

 So from
 http://cygwin.com/faq/faq-nochunks.html#faq.programming.win32-no-cygwin,
 perhaps you should try using mingw-gcc, and see how far that gets you.



-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] LLVM Clang and Cygwin happiness (not quite yet)

2013-05-01 Thread Thad Guidry
Sorry... in the screenshot  Current column shows what I have installed
currently.


On Wed, May 1, 2013 at 11:03 PM, Thad Guidry thadgui...@gmail.com wrote:

 I have mingw64 installed.  See my Cygwin Setup screenshot here:
 https://docs.google.com/file/d/0B533WzlrxWraSHgzdVpGM29WQ1k/edit?usp=sharing


 On Wed, May 1, 2013 at 10:56 PM, Corey Richardson co...@octayn.netwrote:

 On Wed, May 1, 2013 at 11:49 PM, Thad Guidry thadgui...@gmail.com
 wrote:
  This FAQ has most of those answers, Corey, just scroll down it to see
 the
  API and Programming Questions : http://cygwin.com/faq/
 

 So from
 http://cygwin.com/faq/faq-nochunks.html#faq.programming.win32-no-cygwin,
 perhaps you should try using mingw-gcc, and see how far that gets you.



 --
 -Thad
 http://www.freebase.com/view/en/thad_guidry




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] LLVM Clang and Cygwin happiness (not quite yet)

2013-04-29 Thread Thad Guidry
Really?  Then that actually makes things a bit easier.  So, I customize the
Rust build and write steps for users to compile LLVM, Clang, and Rust using
Cygwin on their Windows machine. OK.
 On Apr 29, 2013 3:10 AM, Sanghyeon Seo sh4@samsung.com wrote:

  I am still investigating why Clang 3.1 / LLVM from the Cygwin package
 are not correctly setup
  or working well with the Rust setup and configuration,

 Rust won't compile with LLVM 3.1. This is expected.
 https://mail.mozilla.org/pipermail/rust-dev/2013-April/003518.html
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev

___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] No range integer type? Saftey beyond memory?

2013-04-29 Thread Thad Guidry
Rust user base on a used napkin:

80% want safety.
100% want speed.
10% want it all.
50% do not care.

Rust will be aiming to please those 80% ...that also happen to like tacos
and bacon and wont complain because they will be happy, full, productive,
and content.

Order your t-shirts now. :)

-Thad
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] LLVM Clang and Cygwin happiness (not quite yet)

2013-04-29 Thread Thad Guidry
Gist link shows where I tried to build Rust with Cygwin and Clang-LLVM 3.3
(trunk) tonight... but didn't seem to go all that well, however... ideas ???

https://gist.github.com/thadguidry/5486263

-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] LLVM Clang and Cygwin happiness (not quite yet)

2013-04-28 Thread Thad Guidry
Apparently, you really DO NOT want to install Collabnet Subversion client
on your Windows system, or Tortoise SVN , because both of these default to
checking out with Windows style End Of Line: CRLF.  Instead of UNIX style:
LF which is the default for Cygwin's installation.

My Subversion client from Collabnet was getting loaded first in my $PATH
and taking precedence instead of the Cygwin Subversion client.  ARGHH !
The easy fix for this was... uninstall Collabnet's version (since I really
had no direct use for it, and used it on the command line anyway, which is
the same thing I can do with Cygwin's Subversion.)
I then also removed the Collabnet path from my Windows environment variable
path and then all was well with checking out LLVM and Clang trunk manually.

I am still investigating why Clang 3.1 / LLVM from the Cygwin package are
not correctly setup or working well with the Rust setup and configuration,
but until then, I'm going to try a build of Rust with a built Clang / LLVM
in my Cygwin environment to see if there is any difference.  I then might
have to get with the Cygwin guys to find out where the mixup might be
happening.  Stay Tuned...

-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] stmt inside expr grammar question

2013-04-25 Thread Thad Guidry
John,

Functional ways would be an approach I would admire and +1 for.
I like the alternative also.  In OpenRefine with the GREL expression
language, we did something similar.

Parenthesis rule.  Go Lisp.  err, wait, Go Go.  Oops, wrong business... Go
Rust !


On Thu, Apr 25, 2013 at 1:46 PM, John Clements cleme...@brinckerhoff.orgwrote:

 Huh? Looks like my first message didn't go through. Perhaps I'm being
 moderated, and I just didn't know it?

 Apologies if this appears twice.

 Per our meeting today, I'm sending this out to see whether we want to make
 a change.

 Currently, our grammar parses

 if (true) {3} else {4}  + 10

 As a statement followed by a (non-parseable) expression. This is to
 prevent things like

 if (true) {3} else {4}
 |a| {foo()}

 … from being parsed as two uses of the or operator, for instance.  The
 basic restriction is that when something that could be a statement occurs
 in a position where it could be a statement, then it should be parsed as a
 statement and not as an expression.

 Keep in mind that you can always force a statement-y thing to be allowable
 in any position by using parens. So, for instance,

 (if (true) {3} else {4}) + 10

 is a perfectly legitimate expression.

 This restriction is the cause of no small ugliness in the grammar.

 Simplifying it might concievably avoid certain errors. However, it would
 probably make some people unhappy.

 One way to fix it would be simply to lift the restriction entirely. In
 this case,

 if (true) {3} else {4}
 |a| {foo()}

 … would be parsed as

 ((if (true) {3} else {4}
  |a)
 | {foo()})

 … which some people might be surprised by.

 Another solution would be to *always* require semicolons, even after
 blocks. This would probably make lots of people immediately unhappy.

 Another solution, the shift the burden to those kooky functional folks,
 would be to say that using a statement as an expression *only* works when
 it's enclosed in parens. This would simplify things a lot. This would not
 change the behavior of the first example at all, but it would for instance
 rule out
 14 + if (true) {3} else {4}
 … requiring instead
 14 + (if (true) {3} else {4})
 But indeed, I think I would probably opt for the latter one as more
 readable anyway.
 Another example that would have to change would be changing something like
 for foo.each |a| {f(a)}.bar()
 into
 (for foo.each |a| {f(a)}).bar()
 But honestly, that one makes me happier as well.

 The more I think about this alternative, the more I like it.

 Either way, this ship's gangplank is up and it's straining at its hawsers.
  We should probably make a decision on this now-ish.

 John
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Renaming of core and std

2013-04-24 Thread Thad Guidry
+1 Prime

Prime comes from the Latin  prīmus , which means First... so it's above
Chosen, Favored, Normal, Selected, and all the rest.  In Old French, prim,
means the first hour, go fig.


On Wed, Apr 24, 2013 at 5:58 PM, Graydon Hoare gray...@mozilla.com wrote:

 On 13-04-24 01:05 PM, Benjamin Striegel wrote:
  It's important to keep in mind that much of the value of calling
  something the standard library is so that users *know* that the
  libraries within are blessed by the language developers themselves, and
  therefore gives them the peace of mind that the code within is
  featureful, reliable, supported in the long-term, and well-known by the
  community. Please select a name that adequately expresses the authority
  of such a library.

 Agreed. This packaging will be of a sort that _does_ represent a level
 of support from the language maintainers, version-to-version. So ...
 absent other suggestions I will return to my preferred passtime of
 thesaurus hunting:

   - Common
   - Platform
   - Staple
   - Stock
   - Supported
   - Base
   - Basis
   - Usual
   - Normal
   - Favored
   - Selected
   - Endorsed
   - Chosen
   - Prime

 Any of these sound pleasant to the hear?

 -Graydon

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] LLVM Clang and Cygwin happiness (not quite yet)

2013-04-24 Thread Thad Guidry
OOps, let's try that again with including the pastebin URL !

http://pastebin.mozilla.org/2344954


On Wed, Apr 24, 2013 at 11:25 PM, Thad Guidry thadgui...@gmail.com wrote:

 I've been working on getting the right settings, configure options, etc...
 for Windows users to setup a Cygwin installation and be able to use it to
 build Rust with Clang / LLVM.

 We've run into a few problems and I'm asking the community for a bit of
 help.

 It seems that there's a Clang test that fails, and apparently because the
 header files are not correctly found for whatever reason.

 Here's the pastebin of the current Cygwin environment I'm working against
 and modifying as I go along...that shows the errors and my directory
 structures under a Cygwin install...hope it reads well enough for folks to
 understand.

 I need help with trying to understand why Clang or my setup in Cygwin
 might be confused with this test_me.c that Brian found for me:
 https://gist.github.com/brson/5456999

 --
 -Thad
 http://www.freebase.com/view/en/thad_guidry




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Renaming of core and std

2013-04-23 Thread Thad Guidry
+1 for extra.  It has a nice semantic smiley face all over it.


On Tue, Apr 23, 2013 at 11:35 AM, Patrick Walton pwal...@mozilla.comwrote:

 Hi everyone,

 There's been consensus lately that `core` and `std` are somewhat misnamed.
 `core` is really the standard library--the one that would be specified in a
 specification if we had one. `std` is an extras library and may well end
 up sliced up and moved to various packages.

 So it seems prudent to rename `core` to `std`. But that leaves the
 question of what to name `std` in the interim. Options that have been
 suggested are `extra`, `ext`, and `contrib`.

 Any other opinions?

 Patrick
 __**_
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/**listinfo/rust-devhttps://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] New milestones, bug triage, maturity and completion

2013-04-22 Thread Thad Guidry
So what are the 2 labels applied for the milestones ?

Was that

1. PREDICTIVE MILESTONES
2. MATURITY MILESTONES

??


On Mon, Apr 22, 2013 at 10:44 PM, Graydon Hoare gray...@mozilla.com wrote:

 Hi,

 Mozilla research had a workweek recently where we discussed a number of
 process changes to the Rust project to try to bring a little more order to
 the chaos and wind down the rapid-growth, everything-on-fire phase of the
 project. This email explains those process changes in a little more detail.

 If you're employed on this project full time, please read this email
 carefully.

 0. Bors, incoming and master

 Bors has been generally judged a success (modulo annoyingly regular
 timeouts on the buildbot) so we will be deleting the incoming branch and
 switching bors to move master directly. I'll send another notice when this
 is ready to happen.


 1. Milestones split into two groups

 Previous rust releases have used milestones ineffectively, as they blurred
 the distinction between aspirations (we think this bug _should_ get done)
 and prediction (we think this bug _will_ get done). As a result, they
 served neither purpose and were frequently overlooked or ignored.

 We will attempt to breathe new life into the milestone facility by
 splitting their roles into separate sets: for 0.7 and onwards,
 release-numbered milestones (0.7, 0.8, 0.9, etc.) will be _predictive
 only_. Bugs should be placed on those milestones only if they are assigned
 to you, and represent your best guess about _what you will do_ during a
 release cycle. You can take something off that milestone if it's assigned
 to you and you don't think you'll get it done, whenever you see fit. These
 milestones will have associated target dates, which we will aim to maintain
 on the quarterly cadence we've maintained so far.

 A separate set of milestones has been added called maturity milestones.
 These have no dates, and are aspirational: they define subjective
 concepts backwards compatible or feature complete in terms of specific
 bugs, for external measurement of the project's state. The project's
 maturity can be judged against these more usefully than it can be judged
 against milestones like 0.7 (which tells the reader very little).

 Bugs will be assigned to maturity milestones by a nomination process.
 That's point #2. Maturity milestones will be reached when we get there;
 we will not hold releases for them. What we call 1.0 is a different
 conversation, but I imagine it needs to be somewhere after the backwards
 compatible milestone, just to suit the concept of major-version numbers in
 semantic versioning.


 2. Nomination and acceptance

 Maturity milestones represent a subjective judgment about product
 maturity, as seen through the eyes of the repository owners (that is,
 mozilla engineers). Of course you're welcome to consider maturity in
 different terms, but this is for our own planning and measurement of the
 project. As such we'll be accepting _nomination_ of a bug for inclusion in
 one of these milestones liberally -- anyone should feel free to nominate a
 bug if they think it's really important -- but meeting weekly to either
 _accept_ or _decline_ inclusion in these milestones. This way we hope to
 establish and communicate a consensus concerning the project status and
 path towards completion. There is a new tag I-nominated for tagging a bug
 with nomination. These will be cleared weekly, at the meeting.

 Bugs that we decline to add to a maturity milestone will remain in the
 general bug pool, and will be addressed best effort by the repository
 owners, or (of course) through contributed pull requests. It's still worth
 keeping non-milestone bugs around.

 I should reiterate: the maturity milestones are there to _sharpen a
 concept_ like feature complete or backwards compatible into a
 particular bug-set. They are not there for scheduling a bug you want to
 get done because it seems cool. The idea is that a bug should be assigned
 to a maturity milestone where it would be a _untenable_ to claim or argue
 the terms of the milestone were met without that bug.

 As such, the maturity milestones have extensive text associated with them.
 Please read them to make sure you understand the idea behind each:

 https://github.com/mozilla/**rust/issues/milestoneshttps://github.com/mozilla/rust/issues/milestones


 3. Randomized triage and fixing in the general bug pool

 I've added a new script to our repertoire of project automation that
 selects a set least-recently-edited bugs every week and randomly assigns
 them in batches for triage to a set of project participants (who have
 signed up for this fate -- email me if you want to join in). This way we
 hope to visit, self-nominate, review and close bugs at a better rate and a
 more uniform breadth than we've been doing so far; and to improve this rate
 as we advance towards feature completion and can focus more and more energy
 on bug fixing.

 If you received a set of bugs 

Re: [rust-dev] LLVM versions

2013-04-16 Thread Thad Guidry
 I would not spend a lot of energy supporting multiple versions. As many
 versions as are easy is fine by me. LLVM is big but not impossibly big,
 and if we wind up needing a different-than-trunk version on a given system,
 I think it will not be the end of the world.

 -Graydon


+1 not the end of the world.

-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] getting rid of let a=3, b=4? (bikeshed alert)

2013-04-09 Thread Thad Guidry
What's the problem that develops with that form for you John ?

-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] wanted libraries

2013-04-09 Thread Thad Guidry
Approximate String Matching routines would be nice, if not already
available...

Perhaps performing similar functions such as Second String
http://secondstring.sourceforge.net/


On Tue, Apr 9, 2013 at 12:54 PM, John Mija jon...@proinbox.com wrote:

 +1 for internationalization/**localization; it's complex and the solution
 should be designed by the Rust team.

 +1 for tokenizer, parser, just like Go has:
 http://golang.org/pkg/go/

 This will allow to build tools like gofmt (to format Rust code)

 -1 for protobuf and thrift since they are not standard. Instead, I
 prefer csv in the standard library

 * The library math should be in the library since it's something basic
 to create things related to image and audio.
 In addition a language like JavaScript comes with that library included:

 https://developer.mozilla.org/**en-US/docs/JavaScript/**
 Reference/Global_Objects/Mathhttps://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math


 El 08/04/13 16:42, Olivier Renaud escribió:

  Hi,

 I saw the [wanted libraries] page on the github wiki, and I'd like to
 submit some ideas there.
 The wiki page is read-only, so I fall back on submitting them on this
 list.

 I tried to confine myself to what would be useful to me, in a stdlib.

 * Internationalization : mechanisms for handling the internationalization
 of UI texts
   - one aspect of i18n is to map a key to a text, based on the current
 locale (eg Java's [ResourceBundle])
   - another aspect is to format a string based on the current locale (eg
 Java's [MessageFormat])

 * Libicu is already listed on the wiki, but there are no details of what
 is needed. Here are my suggestions :
   - Convertions between text encodings. Ideally, with a customizable way
 of handling conversion errors.
   - Unicode normalization (NFD, NFC, NFKD, NFKC)
   - Collator (locale sensitive string comparison), with a configurable
 degree of strictness

 * Simple (yet powerful) search on a filesystem (eg Ruby's [glob])

 * A simple tokenizer/file parser

 * Support to read/write zip and tar file formats (not only the gzip
 algorithm)


 Olivier Renaud
 ___

 [wanted libraries] https://github.com/mozilla/**rust/wiki/Note-wanted-**
 libraries https://github.com/mozilla/rust/wiki/Note-wanted-libraries
 [ResourceBundle] http://docs.oracle.com/javase/**7/docs/api/java/util/**
 ResourceBundle.htmlhttp://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html
 [MessageFormat] http://docs.oracle.com/javase/**7/docs/api/java/text/**
 MessageFormat.htmlhttp://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html
 [glob] 
 http://ruby-doc.org/core-2.0/**Dir.html#method-c-globhttp://ruby-doc.org/core-2.0/Dir.html#method-c-glob
 __**_
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/**listinfo/rust-devhttps://mail.mozilla.org/listinfo/rust-dev

  __**_
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/**listinfo/rust-devhttps://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] FastCGI implementation

2013-04-06 Thread Thad Guidry
Perhaps the Cherokee webserver might be useful for you to look at it's
codebase... and it's implementation of fastcgi.h

https://github.com/cherokee/webserver/tree/master/cherokee


On Fri, Apr 5, 2013 at 9:13 PM, Andres Osinski andres.osin...@gmail.comwrote:

 Hi everyone, I've taken an interest in Rust as it fills a niche in
 programming that I've long been looking to fullfill.

 I'm primarily a Python web developer, so I wanted to start coding by
 implementing the FastCGI protocol for Rust. I know that its native task
 management and socket capabilities are very good, but you never know when
 it might be handy for someone.

 I just wanted to know if anyone was familiar with the FCGI protocol, and
 if there's any reference as to how to manage the packing and unpacking of C
 data structures, as well as if you know of any implementation for a similar
 protocol.

 One small question that I have is that FCGI protocol defines a struct with
 two char arrays whose length is defined by another field within the struct,
 and I was wondering how that would be modeled in Rust.

 Thanks

 --
 Andrés Osinski

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] FastCGI implementation

2013-04-06 Thread Thad Guidry
oops, that should have been the handler portion of Cherokee FastCGI ...
https://github.com/cherokee/webserver/blob/master/cherokee/handler_fcgi.c

more docs here:
http://www.cherokee-project.com/doc/modules_handlers_fcgi.html


On Sat, Apr 6, 2013 at 11:45 AM, Thad Guidry thadgui...@gmail.com wrote:

 Perhaps the Cherokee webserver might be useful for you to look at it's
 codebase... and it's implementation of fastcgi.h

 https://github.com/cherokee/webserver/tree/master/cherokee


 On Fri, Apr 5, 2013 at 9:13 PM, Andres Osinski 
 andres.osin...@gmail.comwrote:

 Hi everyone, I've taken an interest in Rust as it fills a niche in
 programming that I've long been looking to fullfill.

 I'm primarily a Python web developer, so I wanted to start coding by
 implementing the FastCGI protocol for Rust. I know that its native task
 management and socket capabilities are very good, but you never know when
 it might be handy for someone.

 I just wanted to know if anyone was familiar with the FCGI protocol, and
 if there's any reference as to how to manage the packing and unpacking of C
 data structures, as well as if you know of any implementation for a similar
 protocol.

 One small question that I have is that FCGI protocol defines a struct
 with two char arrays whose length is defined by another field within the
 struct, and I was wondering how that would be modeled in Rust.

 Thanks

 --
 Andrés Osinski

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




 --
 -Thad
 http://www.freebase.com/view/en/thad_guidry




-- 
-Thad
http://www.freebase.com/view/en/thad_guidry
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


  1   2   >