Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
using it for CI's dumb too. just have your CI server treat any warnings as a failure while still running tests and stuff

Adbot
ADBOT LOVES YOU

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Edison was a dick posted:

goto in 5.2 and an actual integer type in 5.3

luajit supports goto even in 5.1 mode

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Subjunctive posted:

it would be nice if lua had a decent standard library and support for parallelism, though

or a debugger or profiler

https://github.com/pkulchenko/ZeroBraneStudio

it's not very good but better than nothing

luajit has a reasonable good built-in profiler. there's a few profilers for puc lua but none that are really worth using

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
in practice things called "static analyzers" are basically typecheckers that sacrifice some soundness for completeness. a more expressive type system makes this tradeoff useful less often, but no one has managed to make a sound and complete type system that you can realistically write useful programs in, so there's theoretically always going to be room for a "static analyzer"

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

fritz posted:

i dont fully see what kind of type system would catch some of these errors: http://clang-analyzer.llvm.org/available_checks.html

which ones? dead store is the only one that doesn't seem completely trivially using only features in existing real type systems

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
ideally you'd want to only ignore non-semantic whitespace changes, which does require language processing

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
i was thinking more of wanting to see whitespace changes inside string literals but nowhere else, but i guess there's also languages where a+b is different from a + b and python

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
it's certainly not a critical issue that torments me on a daily basis or anything. i'm just saying that the simple language-agnostic tools are merely okay and not a totally solved problem

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
just yesterday i fixed a bug in code with 100% path coverage which would have been prevented by rust's type system, but which even having fixed it i had no idea how i could possibly write a test which would trigger it

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

VikingofRock posted:

This sounds pretty interesting--can you share any more details?

it wasn't actually all that interesting; just some very slightly incorrect code for passing values between threads that was incorrect in a way that rust's borrow checker would have caught which resulted in data races on a value never used for control flow

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Notorious b.s.d. posted:

a friend of a friend does all his one-off sysadmin scripts in ocaml. he works in one of the world's only ocaml shops, so it makes a lot of sense in his context. why use a second language for scripting if your first one will do ?

one-off scripts tend to involve mostly calling other programs and munging strings, and most of the languages i would consider using for Real Programs are kinda bad at both of those

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Symbolic Butt posted:

I don't know how I feel about type inference, it's cool I guess and it's not the kind of "trivial static type checking" that I'm dissing itt
i didn't mention type inference?

Symbolic Butt posted:

for me it's like I don't care if butts is a list or whatever, it's just a thing that I'm taking butt objects from. duck typing birch

eventually I'll go back and decide the appropriate data structures and fix up the api for what I really need, and this is where I feel like dynamic typing has an advantage: static typing forces you to deal with a whole chain of type bureaucracy that doesn't matter most of the development time. and maybe it'll never matter anyway :whoa:
would it blow your mind if i told you that's how i often write c++? templates are duck typed but with compile time checking of if the thing looks like a duck rather than runtime

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

comedyblissoption posted:

yeah but that's a strawman argument that no one who prefers large amounts of type inference is advocating

idk, while i've never heard anyone outright claim that you should never have to explicitly state what type something is except for when the language requires it, i think a lot of people go through a phase where they think that when first exposed to good type inference, until they've worked with it for a while and hit places where they wish some things had their types annotated for readability

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Soricidus posted:

famous last words

probably more like "not like i'll be here in 5 years"

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
the sml-like subset of f# seems almost strictly better than sml proper as a teaching language simply because the tooling is much better. smlnj's error messages are not great and it doesn't have a debugger at all

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Notorious b.s.d. posted:

would unironically prefer this

the C line noise garbage comes directly from PDP-11 assembly. which was typed out laboriously on a 33 character per second terminal. using "*" instead of "deref()" made a lot of sense when you could type faster than the terminal could send data

it makes no sense at all on a system post-1980

you'd love 90s style objective-c i guess (but not modern obj-c because everyone fell over themselves to abandon things like objectAtIndex: as quickly as they could)

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Arcsech posted:

Given this list of problems, what makes Haskell worth using over F# or Ocaml or other such functional-first languages that aren't quite so strict?

i think like 90% of the people who tell you to learn haskell would be satisfied with you instead learning ocaml (or f# if you ignore the people who reflexively hate anything from ms who don't realize that includes haskell)

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

JewKiller 3000 posted:

i certainly would, and i think you'd be more satisfied yourself! i can think of only two reasons why someone might choose Haskell over OCaml: they're attracted by purity enough to convince themselves that lazy evaluation is a good idea, and they like the large Haskell community. but i don't like pervasive lazy evaluation, and i don't like the Haskell community either.
even if you don't like the people, actually having libraries is pretty helpful if you're trying to build something useful (even if just for yourself) in the process of learning the language

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

fidel sarcastro posted:

i want to say that everyone uses first and rest instead, but lol programmers.

that's mostly only schemers

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Blotto Skorzany posted:

they are composed to make fun-to-pronounce functions, like cadadadaaadddddddadr and whatnot

a "fun" lisp game: have someone with a stutter read some lisp code out loud and then try to come up with a plausible data structure involving the things they said

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
my only complaint about gofmt is that the compiler should reject any code not formatted by it

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
endless patience is pretty much a prerequisite for good technical writing on complex topics

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Max Facetime posted:

or could overload operator . to check and return NULL on NULL


let's not beat around the bush, that's what we really want :D

obj-c does that and it's sometimes nice. leads to a lot of awful bugs from people not used to it, but eventually you get used to writing your conditional statements to be correct if things are nil and only occasionally get awful bugs

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Notorious b.s.d. posted:

the non-joke is that he was using biological definitions not philosophy

https://en.wikipedia.org/wiki/Recapitulation_theory

my ap biology class in high school told me that ontogeny recapitulates phylogeny was still considered mostly true so it was a bit weird seeing a 1978 citation for it being defunct

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
i'd be much more okay with compiler-enforced hungarian than normal hungarian

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Blotto Skorzany posted:

did they do that because they dislike overloading in general or because they wanted to avoid name mangling

some of them don't like it and the people that do like it don't think that rust really needs it all that badly

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

f# is fine too if .net is acceptable

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Subjunctive posted:

tracing GCs still basically present the choice of "twice as much RAM as working set" or "pauses of indeterminate timing and duration", at the limit. I love 'em, but they're not a universal solution.
and there's only a few platforms that have good enough implementations that you actually get to choose only one of those

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Notorious b.s.d. posted:

early in the c# era, people did try to port the then-preeminent java build tool to .net, and nANT was the result. nANT was every bit as good as the original ant, but microsoft didn't adopt it, so it died

"as good as ant" generally isn't considered a compliment

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
msbuild as originally designed is actually kinda elegant: ideally the project file should contain nothing but a list of files associated with various tasks and some configuration settings for those tasks, with the tasks themselves defined in .net assemblies written in the .net language of your choice. unfortunately, the other 90% of msbuild is awful cancerous growths of functionality hacked in in the worst possible ways because for some reason they decided not to just tell people to write custom build tasks when they need some logic in their build system.

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Shaggar posted:

the design was a failure from the start because its still task oriented instead of result oriented.

i think the motivation there was for faster incremental builds when working in the ide, but of course in the time since tup and ninja have delivered the same benefits by just taking advantage of the fact that the dependency graph typically doesn't change between two incremental builds, and for the first few years of vs.net the ide couldn't really handle projects with enough files for it to matter anyway

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

b0lt posted:

every service at google is either deprecated or not ready yet

sometimes both

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
that's not at all uncommon and is why people have been saying not to use extensions in your urls for a very long time

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Ralith posted:

I think there's a standard variant type on the way too.
the latest mailing had three different proposals with different unpleasant tradeoffs

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Volte posted:

We have different definition of syntax then. I don't consider an ill-typed program to be syntactic even if it can be parsed by the language's BNF grammar.
well you're pretty objectively wrong and have made up your own meaning for a well understood term

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
swift goes a step further and doesn't even let you have private fields and so far i've never had it be a problem

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

qntm posted:

I actually had a danged good use case for this the other day but I can't remember what it was

you can use it for memoization, lazy computed values, and any of those other things you'd use a local static variable for

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Suspicious Dish posted:

What I was saying is that you can't compress raw video to H.264 in parallel. The process of compression is heavily linearized.
you split the video into segments, encode those segments in parallel, then concatenate them

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

Suspicious Dish posted:

I didn't think you could switch SPS mid-stream, and isn't the SPS usually the output of the analysis phase?
in theory you can, but you don't need to. it's okay to have the SPS claim that you'll use five reference frames and then only end up actually needing three.

Blotto Skorzany posted:

do the segments have to be split at keyframes for this to work?
no. you have to start decoding from the last keyframe before the split point so not splitting exactly on the source keyframes implies some wasted decoder work, but discarding a few decoded frames isn't the end of the world. even with an insane source video with zero recovery points (i.e. one in which every segment has to decode from the beginning) and nothing like google's crazy live vm cloning, the segmented encoder will be lower latency than the unsegmented one at the cost of a shitload of extra cpu time

Adbot
ADBOT LOVES YOU

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

pseudorandom name posted:

no push notifications, though

there's xmpp servers that support push notifications, and writing an apns plugin for tigase was only about a day of work

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply