Re: svn commit: r314831 - head/usr.bin/fortune

2017-03-06 Thread Jordan Hubbard

[ Charset ISO-Latin1 unsupported, converting… ]

Is it true you still use mutt to read your e-mail? :-)

- Jordan

___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Re: svn commit: r260311 - in head/contrib: gcc gcc/cp gcc/doc gcclibs/include gcclibs/libiberty

2014-01-06 Thread Jordan Hubbard

On Jan 5, 2014, at 5:18 PM, Pedro Giffuni  wrote:

> *Anyone working on a GCD-enabled version of grep or sort? :).

Look at stdlib/FreeBSD/psort.c in OS X’s Libc 
(http://www.opensource.apple.com/release/os-x-109/Libc-997.1.1) - that’s the 
basis for the GCD-aware sort.

I don’t know if we got around to doing grep or not - I’d have to look. :)

- Jordan

___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r268641 - head/usr.sbin/service

2014-07-15 Thread Jordan Hubbard
On Jul 15, 2014, at 7:13 PM, dte...@freebsd.org wrote:

> I would argue that not all programs are going to like having
> a nearly empty environment. Things like TERM and SHLVL
> at the very least should be passed (after-all, the boot process
> takes place on [a] a terminal and [b] in a shell).

Having launchd scrub every processes environment down to nothing, then have 
environment variables be set explicitly as part of that processes’ “launch 
contract” was one of the best decisions we ever made at Apple.

The Unix process environment is a septic tank, and that’s actually being kind 
since most septic tanks don’t also contain bottles of nerve gas and the 
occasional live hand grenade.  Many parts of the environment are trivially 
attackable, and if anyone on the CC line thinks they know the full extent of 
that attack surface, they’re wrong.  Not because there aren’t some extremely 
smart Unix people in the audience, but because it’s simply impossible to know 
how each and every environment variable will be used, how it can overflow, or 
how it can be used to permute a program’s behavior in unpredictable ways.   
Even if the intention isn’t to be hostile, you can still cause some truly 
Heisenbergian results by having the environment be unpredictable in nature.

It may not be “Unixy”, but Unix didn’t grow up in a world with millions of 
instances of itself or the big, bad Internet encompassing pretty much every 
country on earth.  Changes need to be made to keep up with the times, and you 
can rest assured that FreeBSD’s competition is making those changes or has 
already made them.

I also find it a frankly weird assertion that a background service would care 
about the value of TERM.  That sounds like a pretty warped service to me, since 
assuming interactivity is more the exception than the rule these days.

- Jordan

___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r268641 - head/usr.sbin/service

2014-07-15 Thread Jordan Hubbard

On Jul 15, 2014, at 7:40 PM, dte...@freebsd.org wrote:

> I define non-UNIXy as chicanery that makes working in a
> POSIX environment more difficult

POSIX does not define or mandate any specific set of environment variables.  OS 
X is POSIX and UNIX03 compliant (and qualified to use the Unix trademark, 
unlike FreeBSD), and I’ve already described its behavior with respect to 
environment variables.  Be careful how you sling terms like POSIX or Unix™ 
around. ;-)

- Jordan

___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r268491 - head/usr.bin/users

2014-07-10 Thread Jordan Hubbard

On Jul 10, 2014, at 10:20 AM, David Chisnall  
wrote:

> This is important in a wider context.  For example, in the project to add 
> machine-readable output to core utilities, we'd like to be able to parse 
> these into the same machine-readable format.  Apple has the CoreFoundation 
> library for this, which provides a load of stuff, but most importantly 
> number, string, date, dictionary, and array types (i.e. the sorts of things 
> that you'd want in JSON-like serialisation formats).

Just as important as CoreFoundation are APIs like CFPreferences.  I find it 
frankly horrifying that in the year 2014, anyone who writes a new daemon or 
system service will have to invent their own ad-hoc configuration file format 
in /etc (because, you know, there really aren't enough of them there now) as 
well as their own out-of-band mechanism for detecting when the configuration 
data changes. Having a data serialization format would the first step.

- Jordan

___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r264042 - in head: include lib/libc/gen lib/libc/include lib/libc/stdlib

2014-04-04 Thread Jordan Hubbard
On Apr 4, 2014, at 4:59 PM, David Chisnall  wrote:

> I believe that libdispatch most likely won't be imported until there is an 
> in-tree consumer, but it's in ports and there's nothing stopping ports 
> depending on it if they want to use it...

I certainly get and even generally agree with that point of view.  It seems 
like putting the cart before the horse to bring in any technology before there 
is a use case demanding said technology, right?

Right.  However, I think there are also occasional exceptions to that rule.  
The strlcpy() / strlcat() / … family of functions, for example.  Until they 
existed (outside of OpenBSD), nobody really used them pervasively enough to 
achieve their intended purpose (death to buffer overflows in string handling) 
and it took bringing them in and essentially saying “see?  there!  use those 
now please!” for adoption and conversion of existing string handling code to 
eventually, over the course of years, become second nature.

I think libdispatch is in a very similar category, and you’ll just have to 
trust me when I say that I’ve had the benefit of watching multiple years worth 
of slow adoption work its magic there, too.  Without libdispatch, you just use 
pthreads whenever you need to do something in the background.  Without 
libdispatch, you don’t write code (in libraries or applications) which assumes 
any sort of run loop at all because, well, there isn’t one.  Without 
libdispatch, you still write careful and limited signal handling functions 
because there’s no signal trampoline to save your butt if you try to do to much 
in a signal handler.  I could go on at length!

Libdispatch (with blocks) is, in short, more akin to a programming idiom than a 
library.  Without them, you simply write an entirely different style of 
synchronous, multi-threaded code with mutex locks and pthread join and 
cancellation points, yada yada yada.  Once libdispatch and blocks are part of 
the runtime, you slowly leave the old style stuff behind because it’s limited, 
painful and just nowhere near as sophisticated.  To paraphrase something I 
heard from more than a few dozen software engineers over the years:  
“Libdispatch is the multithreaded programming paradigm I never knew I always 
wanted.”

There’s a reason it’s been ported to everything from Windows to Android.  It’s 
hard to go back, once you have made the switch.

Back to my point, however:  I don’t think FreeBSD programmers are ever going to 
embrace an idiomatic change of that nature (and it’s pretty significant) until 
it is part of base, so there’s really a deadlock here.  What’s worse, I also 
don’t think anyone in *BSD-land is writing code that’s particularly event-aware 
(the lack of system-wide notifications kind of speaks to that) largely 
*because* it’s a PITA to do that without a runloop or handy glue code which 
makes it trivial, the alternative being to use a background thread that tries 
to coordinate said events with the foreground and that’s just icky.   The 
end-result of this is that an entire somewhat more modern style of programming, 
where things are more dynamic in the face of things changing on the system, 
simply doesn’t happen at the OS level and that’s a shame, because the OS *is* a 
dynamic environment, particularly in the mobile space.

I guess what I’m advocating is nothing less than a leap of faith?

- Jordan

___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r264042 - in head: include lib/libc/gen lib/libc/include lib/libc/stdlib

2014-04-04 Thread Jordan Hubbard

On Apr 4, 2014, at 5:31 PM, Bryan Drewery  wrote:

> Respectfully, as a developer, why would I want to use libdispatch and
> not libevent? Libevent looks far more portable.

Equally respectfully, if you’re comparing libevent and libdispatch at all, then 
you’re only getting about 10% of what libdispatch actually is.  The event 
handling piece is really just a small fraction of it.  For a really nice 
overview written by someone *not* from Apple, I recommend:  
http://arstechnica.com/apple/2009/08/mac-os-x-10-6/12/

Libdispatch is also highly portable.  I don’t think there’s an OS flavor it 
*hasn’t* been ported to at this point.

- Jordan

___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r264042 - in head: include lib/libc/gen lib/libc/include lib/libc/stdlib

2014-04-04 Thread Jordan Hubbard

On Apr 4, 2014, at 5:33 PM, David Chisnall  wrote:

> The slight problem, however, is that we would still like to be able to build 
> the base system with a more or less standard C compiler.  Blocks are in clang 
> and are slowly making their way into commercial compilers, but the only two 
> versions of gcc that support them are the ones shipped by Apple and FreeBSD.  

Huh.  Can I ask what specific need is driving that?  As you point out, you’ve 
got clang and you’ve also got the blocks support from Apple gcc back-ported, so 
that covers all the architectures you could possibly want to generate code for. 
 Wanting to hold base to some retro K&R standard for its own sake seems… weird… 
so I must be missing some part of the need statement, hence my question?

Thanks,

- Jordan

___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r264042 - in head: include lib/libc/gen lib/libc/include lib/libc/stdlib

2014-04-04 Thread Jordan Hubbard

On Apr 4, 2014, at 5:55 PM, David Chisnall  wrote:

> We'd like to kill off gcc 4.2.1 in base, because it doesn't support C11 or 
> C++11. The lack of C++11 support is a problem because it means gcc 
> architectures can't build libc++, so they need to use an old libstdc++ to 
> build C++ things in the base system (which also means that these things can't 
> take advantage of C++11, which cleans up the language a huge amount).  The 
> prerequisite for this is the availability of external toolchains for the 
> non-clang platforms.  If we could build base with gcc47 from ports, that 
> would be okay, because then we'd have a modern C/C++ compiler in the base 
> system and a modern(ish - 4.8 / 4.9 would be better, but 4.7 is a reasonable 
> baseline) C/C++ compiler in ports to drive an external toolchain.

Ah, OK.  And I’m guessing there’s been no interest in forward-porting the 
blocks support to 4.7?  That’s kind of…  a bummer.  I’m guessing the great 
white hope for all the platforms is a slow convergence on clang then?  What is 
the compiler toolchain master plan?  If there’s a wiki somewhere describing it, 
I’d also be happy to just go read that.

> For embedded uses, we'd also like to build FreeBSD with 
> vendor's-ugly-hacked-up-gcc-of-the-week.  This is less of an issue now for 
> ARM, but MIPS vendors still hack up gcc in such a way that there's no way 
> that they can get their changes upstreamed and then ship the result with 
> their chips.

I see.  That’s pretty ugly indeed - is there a list of FreeBSD MIPS folks doing 
this somewhere?  I ask out of curiosity to know if there’s any collective 
attempt to chain them all together and insist that they improve clang/MIPS to 
the point where they can stop doing ugly-ass gcc ports. :)

Thanks for all the info.  It’s very helpful!

- Jordan

___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r264042 - in head: include lib/libc/gen lib/libc/include lib/libc/stdlib

2014-04-04 Thread Jordan Hubbard

On Apr 4, 2014, at 7:03 PM, David Chisnall  wrote:

> That said, I think we're increasingly going to be using LLVM for things that 
> are beyond just simple AOT compilation, so platforms with no LLVM back end 
> are likely to be left behind.

Amen, and a topic worth an entire discussion in its own right, but I’ll spare 
us that and leave the topic with just one quick anecdote:  When we ported 
MacRuby to LLVM, thus creating in effect a ruby JIT compiler, we were pretty 
amazed at how quickly the work progressed and how good the performance of the 
resulting code was.  MacRuby later died for other reasons, but its JIT/AOT 
compilation abilities were amazing enough that we were left wondered why the 
Python and Perl folks weren’t stampeding over themselves to follow suit.

I think the answer there was that they’d already rolled their own bytecode 
systems, as ultimately did Ruby, and had too much invested in those 
technologies, but I’m still holding out hope that the “everyone but C/C++” 
world of languages will eventually converge on LLVM, as seems to be slowly 
happening with projects like Rubinius and Numba.  Not relevant to FreeBSD right 
now, but who knows the future?

- Jordan



___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Compiler toolchain roadmap

2014-04-06 Thread Jordan Hubbard

On Apr 6, 2014, at 2:34 PM, Adrian Chadd  wrote:

> So if we want to be taken seriously by those funny companies that make CPUs, 
> then:

Not really religious about that at all, I just wonder the following:

1. How long will it be considered worthwhile to not be able to have various 
advanced features in base (like blocks, or someday perhaps, more advanced C++ 
features / GC / yada yada yada) because the lowest common denominator compiler 
technology, probably not even under control of the project itself (those 
“weird-ass compiler ports” David mentioned), simply doesn’t support those 
things?

Moreover, there’s not much incentive for the companies in question to modernize 
their toolchains if FreeBSD is happy to remain somewhere in the 1990s in terms 
of what compiler features it leverages, and it’s not particularly clear to me 
how the presence / participation (?) of those companies is being valued in the 
overall scheme of things.  If one lone MIPS R3000 vendor was holding back 
because it was using the Mongoose-V radiation-hardened part (yeah, that’s a 
real thing) and FreeBSD for some solution, would that be worth holding the 
entire project back?  No?  How about two such vendors?  Three?  Where do you 
draw the line?   I don’t even pretend to have the answer to that question, I 
just think it’s a question worth asking.

Also, JFYI, I don’t really have any strong personal agenda where this is 
concerned - I can just keep taking FreeBSD and hacking it up every which way 
such that “what’s in base” becomes increasingly irrelevant to me, but the more 
I diverge, the less easy it becomes to upstream stuff back.  I already had that 
experience once at Apple, and it ultimately didn’t hold me back at all so the 
“omg the cost of forking” argument is no longer one that holds much fear for 
me, but it’s a shame that all the I18N / UNIX03 / numerics optimization / … 
work that occurred in the open over the first 3-5 years I was there was never 
able to benefit FreeBSD because of said divergence, either.

2. What’s the long-term prognosis on a multi-architecture ecosystem?   I 
certainly remember the “good old days” when any company that knew how to solder 
two transistors together had their own CPU architecture, but those folks have 
been dying off for decades now.  Now we have Intel as the long-dominant 900 
pound gorilla, which is why FreeBSD originally chose to focus almost 
exclusively on that architecture (and I think that was a smart decision), and 
the smaller but still feisty ARM architecture.  That’s about it.  Yes, I know 
about the others, but just because a port *can* be done doesn’t necessarily 
mean it *should* be, and I’ll cite the Alpha and Itanium ports as existence 
proofs of that.  Heck, I was a huge proponent of the Alpha port - I wanted a 64 
bit version of FreeBSD back then so badly I could taste it, and I personally 
thought the Alpha was pretty damn cool - I even had one of my own.  Didn’t make 
it such a good idea in hindsight, however.

Again, if there’s a common theme in my two bullets there, it’s “show me the 
numbers!”   Sure, I know of vendors who use MIPS and, for that matter, PowerPC 
and a few other far more obscure architectures as well.  I’m familiar with 
Juniper and Cisco’s interest.  I even read Warner’s slides from BSDCan 2008, 
where a fairly long and slightly sordid tale is told of MIPS support trying 
repeatedly to get into the tree, being repeatedly rebuffed until it finally 
somehow took root through a semi-cabalistic effort with dark rituals involving 
dead chickens and Perforce.  Now it’s 2014 and apparently we can’t have nice 
things in the tree because of MIPS?   Maybe I’m over-simplifying the argument, 
but even simplistically I would easily understand it if you substituted “ARM” 
or “Intel” because I can count those numbers easily and know without even 
trying that there are at least 7 zeros involved in the total.  Every PC ever 
shipped.  Every Samsung phone.  Big and impressive numbers that can’t be argued 
with.   I’m just not getting the same impression from the other architectures 
under discussion here.

- Jordan




___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r280955 - in head/sys: modules/notrandom dev/notrandom

2015-04-01 Thread Jordan Hubbard

> On Apr 1, 2015, at 11:04 AM, David Chisnall  wrote:
> 
> On 1 Apr 2015, at 18:41, Mateusz Guzik  wrote:
>> 
>> I guess you were right, this was bad.
>> 
>> I moved the implementation to null.c, I hope this makes everyone happy.
>> 
>> https://lists.freebsd.org/pipermail/svn-src-all/2015-April/101876.html
> 
> This almost certainly does not make people happy:

“FreeBSD:  Where even April 1st gets a good bike-shedding!”

I, personally, am disappointed the 3 BSDs did not merge again this year.

- Jordan

___
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Re: svn commit: r293720 - head/sys/dev/hyperv/netvsc

2016-01-12 Thread Jordan Hubbard
Or hellsbells. :-)

Sent from my iPhone

> On Jan 12, 2016, at 08:49, Gary Jennejohn  wrote:
> 
> 
> Maybe his name should be changed to melbel, which would eliminate
> the me/me@ kerfuffle.
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


Re: svn commit: r303755 - head/sys/kern

2016-08-04 Thread Jordan Hubbard

> On Aug 4, 2016, at 10:06 PM, Julian Elischer  wrote:
> 
> personally I'd rather we drove a stake through the heart of symbol versioning 
> and
> went back to how it was, when one could work out what was going on.
> I certainly miss the ability to get the openssl package to overwrite the base 
> one,
> which I'm told is no longer possible due to versioning.

That seems unlikely to be a strategy for long-term success given all of the 
opportunities for *unintentional* overwriting of symbols.  In other words, it’s 
great when it works for you.  It sucks when it works against you.

That said, in OS X, Solaris-style symbol versioning didn’t really yield a lot 
of dividends and turned out to be a far-too-granular way of permuting APIs over 
time.  What tended to happen instead was that symbols got renamed through 
header hacks (“aliasing”) and the old binaries simply continued to work by 
calling different versions of function X (newly compiled applications talking 
to the new implementation).

What HAS yielded a lot of dividends in OS X is a two-level namespace for all 
symbols.  To quote the Apple docs:  "The two-level namespace feature of OS X 
v10.1 and later adds the module name as part of the symbol name of the symbols 
defined within it. This approach ensures a module’s symbol names don’t conflict 
with the names used in other modules.”

This prevents other problems and allows you to move symbols around en-masse in 
refactoring exercises rather than having to version them.  If FreeBSD is 
genuinely “fed up” with ELF symbol versioning, I might suggest that other 
alternatives be explored rather than simply going back to the Bad Old Days 
because they were more predictable.

- Jordan

___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"