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
prefect
Sep 11, 2001

No one, Woodhouse.
No one.




Dead Man’s Band

hackbunny posted:

not my fault, was just doing an OSX build of Password Safe

hey, i use that software :toot:

Adbot
ADBOT LOVES YOU

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

hackbunny posted:

not my fault, was just doing an OSX build of Password Safe

issue went away, it was probably due to compiling wxWidgets with gcc and the application with llvm, which possibly resulted in mismatched object layouts between app and library, which conceivably could result in different this-adjusting thunks (whose names inexplicably all demangle to the same string regardless of adjustment offset. cmon even Microsoft got it right)

yeah c++ doesn't have a specified abi so everybody has to recompile poo poo when apple switched to clang++ fulltime

c++: lmao

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Malcolm XML posted:

yeah c++ doesn't have a specified abi so everybody has to recompile poo poo when apple switched to clang++ fulltime

c++: lmao

rust please save us from c++ amen

Kuvo
Oct 27, 2008

Blame it on the misfortune of your bark!
Fun Shoe

few pages back but this rules

Bloody
Mar 3, 2013

Malcolm XML posted:

rust please save us from c++ amen

poo poo that will never happen

double sulk
Jul 2, 2010

use elixir 0.12.5

Soricidus
Oct 21, 2010
freedom-hating statist shill

havelock posted:

C# enums accept arbitrary ints for versioning reasons. Sum types force you to handle all cases at compile time, enums (in C# anyway) explicitly don't. As long as you have a default: in your case statement then you're fine.
exhaustiveness checking is the best thing about java enums. if i add a new member, the compiler will tell me what code needs to be updated to handle it. default clauses just hide the problem, like why are you using a statically typed language if you don't want static checks

havelock
Jan 20, 2004

IGNORE ME
Soiled Meat

Soricidus posted:

exhaustiveness checking is the best thing about java enums. if i add a new member, the compiler will tell me what code needs to be updated to handle it. default clauses just hide the problem, like why are you using a statically typed language if you don't want static checks

Because adding an explicitly new value shouldn't force all of your library consumers to recompile.

(I don't want to hear wrong opinions about checked exceptions again, but do note that this is a consistent choice in that respect)

havelock fucked around with this message at 20:34 on Mar 11, 2014

Shaggar
Apr 26, 2006
adding a new enum value is change in the api and everyone should be made aware. that's the entire point of static typing.

if you don't want that to happen just go back to using public static final int.

havelock
Jan 20, 2004

IGNORE ME
Soiled Meat

Shaggar posted:

adding a new enum value is change in the api and everyone should be made aware. that's the entire point of static typing.

if you don't want that to happen just go back to using public static final int.

Which mode should I open this file in?
Guess what - someone added a new mode that isn't the one I was asking for anyway - gotta recompile.

If you are changing semantics, you should be changing your version number significantly anyway, so callers would have to explicitly opt in.

Shaggar
Apr 26, 2006
yeah you should totally up the version number for sure but anyone who upgrades should also be warned about changes whenever possible.

manual documentation will be ignored and/or wrong, so its best to let the compiler inform them

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Shaggar posted:

adding a new enum value is change in the api and everyone should be made aware. that's the entire point of static typing.

if you don't want that to happen just go back to using public static final int.

Shaggar was right (as usual)

Breakfast All Day
Oct 21, 2004

Malcolm XML posted:

yeah c++ doesn't have a specified abi so everybody has to recompile poo poo when apple switched to clang++ fulltime

c++: lmao

llvm/clang is saving us from c++

seriously the 00s were a loving nightmare but plangs of all things convinced people that maybe stroopoops frankenstein was already too big for any one person to know so we may as well tack more on that was actually usuable and now we're on the third new spec because clang proved it doesnt take a decade to implement one. now its trying to slay the include beast, actually using it on a few projects by choice again and having an ok time

also gcc was becoming a temple to everything wrong with open sores

it woken up a little but too late

Nomnom Cookie
Aug 30, 2009



Breakfast All Day posted:

also gcc was becoming a temple to everything wrong with open sores

itym cathedral hyuk hyuk hyuk

Janitor Prime
Jan 22, 2004

PC LOAD LETTER

What da fuck does that mean

Fun Shoe
current java stack trace:
code:
2014-03-11 22:31:04,342 ERROR http-thread-pool-38181(1) my.company.webapps.myapp.product.controller.DeviceOperations - There was an exception in the service layer
my.company.service.exception.ServiceException: Esn couldn't be deactivated because it was not found
        at my.company.licenselogic.OneLicensePerDeviceLogic.deactivateDevice(OneLicensePerDeviceLogic.java:79) ~[oneLicensePerDeviceLogic-1.0.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_25]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_25]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25]
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) ~[spring-tx-3.0.7.RELEASE.jar:3.0.7.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at com.sun.proxy.$Proxy573.deactivateDevice(Unknown Source) ~[na:na]
        at my.company.webapps.myapp.product.controller.DeviceOperations.deactiveDevice(DeviceOperations.java:73) ~[DeviceOperations.class:na]
        at my.company.webapps.myapp.product.controller.DeviceOperations$$FastClassByCGLIB$$ab049c08.invoke(<generated>) ~[cglib-2.2.jar:na]
        at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191) ~[cglib-2.2.jar:na]
        at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64) ~[spring-security-core-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at my.company.webapps.myapp.product.controller.DeviceOperations$$EnhancerByCGLIB$$8b40e193.deactiveDevice(<generated>) ~[cglib-2.2.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_25]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_25]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25]
        at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) ~[spring-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) ~[javax.servlet-api.jar:3.0.1]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) ~[javax.servlet-api.jar:3.0.1]
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.security.web.authentication.[url]www.BasicAuthenticationFilter.doFilter[/url](BasicAuthenticationFilter.java:201) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) ~[spring-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) ~[spring-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) ~[kernel.jar:3.1.2.1-SNAPSHOT]
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) ~[kernel.jar:3.1.2.1-SNAPSHOT]
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.ContextTask.run(ContextTask.java:71) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) ~[grizzly-utils.jar:1.9.50]
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) ~[grizzly-utils.jar:1.9.50]
        at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
:eyepop:

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
you know what would make that better? xml. boom.

JewKiller 3000
Nov 28, 2006

by Lowtax

DukeDuke posted:

my "Programming Language Concepts" professor is teaching us agda, a functional language even more useless than the haskell it's built on. on a recent student eval form he actually asked "should this class switch to haskell in the future?"

:wtc:

where do you go to school? (is it... duke?) agda would generally be taught in a graduate level class devoted entirely to programming dependently typed proof assistants. and if he wants to teach that, he should use coq, because it's more mature

fritz
Jul 26, 2003

Bloody posted:

one unless you count fpgas then... half? in a normal micro you just fart some machine code into some memory and when it powers on the program counter always starts at some known value and it just starts doing whatever it finds at that spot in memory and off it goes, executing your poo poo code

also just lol at calling a raspberry fart high end, poo poo is a thirty dollar steaming turd


jesus christ what the gently caress

somebody maybe itt posted about how on intel chips the 'machine code' gets recompiled down to some risc-like thing on the fly and executed thatwise

fritz
Jul 26, 2003

Breakfast All Day posted:

also gcc was becoming a temple to everything wrong with open sores

"was becoming"? that was already after they hosed up the project management bad enough to have to go egcs

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

fritz posted:

somebody maybe itt posted about how on intel chips the 'machine code' gets recompiled down to some risc-like thing on the fly and executed thatwise

i don't think recompilation is a reasonable term for the translation of macroops (regular instructions) to microops that goes on in the instruction decode stage of a modern x86 chip's pipeline

hackbunny
Jul 22, 2007

I haven't been on SA for years but the person who gave me my previous av as a joke felt guilty for doing so and decided to get me a non-shitty av

prefect posted:

hey, i use that software :toot:

I did manage to build and run it. it works fine except for trying to put 9 rows in a 2x6 grid layout which makes it crash. and a possibly unrelated crash when it's compiled in release mode. the UI is clunky and the code is messy so I'm not going to try and fix it any soon, but I'll try to be a good citizen and contribute patches for the worst issues

Malcolm XML posted:

yeah c++ doesn't have a specified abi so everybody has to recompile poo poo when apple switched to clang++ fulltime

c++: lmao

there is an ABI specification and both g++ and clang are following it to some degree because they are like 99.9% compatible, but libraries can still screw up if they do conditional compilation in ways that produce different object layouts for different, binary-compatible compilers. there are patterns to make C++ libraries robust against that kind of issue but :effort: and you know that if you man up and do it, some sperglord is going to put your library through a benchmark to mathematically prove that it's bad and you're bad and you should feel bad

Sapozhnik
Jan 2, 2005

Nap Ghost
pretty soon you end up just reinventing COM... "copy-pasting method wrappers is really tedious, why not just allocate all this stuff on the heap and use smart pointers? of course, then you have to have reference counting semantics and oh my god what am i doing i know where this road leads"

at least everything on linux uses the same libc, though i bet statically-linked proprietary software that exports a plugin API turns into a freakshow real fast

HORATIO HORNBLOWER
Sep 21, 2002

no ambition,
no talent,
no chance

Janitor Prime posted:

current java stack trace:
code:
2014-03-11 22:31:04,342 ERROR http-thread-pool-38181(1) my.company.webapps.myapp.product.controller.DeviceOperations - There was an exception in the service layer
my.company.service.exception.ServiceException: Esn couldn't be deactivated because it was not found
        at my.company.licenselogic.OneLicensePerDeviceLogic.deactivateDevice(OneLicensePerDeviceLogic.java:79) ~[oneLicensePerDeviceLogic-1.0.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_25]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_25]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25]
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) ~[spring-tx-3.0.7.RELEASE.jar:3.0.7.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at com.sun.proxy.$Proxy573.deactivateDevice(Unknown Source) ~[na:na]
        at my.company.webapps.myapp.product.controller.DeviceOperations.deactiveDevice(DeviceOperations.java:73) ~[DeviceOperations.class:na]
        at my.company.webapps.myapp.product.controller.DeviceOperations$$FastClassByCGLIB$$ab049c08.invoke(<generated>) ~[cglib-2.2.jar:na]
        at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191) ~[cglib-2.2.jar:na]
        at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64) ~[spring-security-core-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at my.company.webapps.myapp.product.controller.DeviceOperations$$EnhancerByCGLIB$$8b40e193.deactiveDevice(<generated>) ~[cglib-2.2.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_25]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_25]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25]
        at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) ~[spring-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) ~[javax.servlet-api.jar:3.0.1]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) ~[javax.servlet-api.jar:3.0.1]
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.security.web.authentication.[url]www.BasicAuthenticationFilter.doFilter[/url](BasicAuthenticationFilter.java:201) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) ~[spring-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) ~[spring-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) ~[kernel.jar:3.1.2.1-SNAPSHOT]
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) ~[kernel.jar:3.1.2.1-SNAPSHOT]
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.ContextTask.run(ContextTask.java:71) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) ~[grizzly-utils.jar:1.9.50]
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) ~[grizzly-utils.jar:1.9.50]
        at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
:eyepop:
spring :barf:

Notorious b.s.d.
Jan 25, 2003

by Reene

Malcolm XML posted:

yeah c++ doesn't have a specified abi so everybody has to recompile poo poo when apple switched to clang++ fulltime

c++: lmao

hackbunny posted:

there is an ABI specification and both g++ and clang are following it to some degree because they are like 99.9% compatible, but libraries can still screw up if they do conditional compilation in ways that produce different object layouts for different, binary-compatible compilers. there are patterns to make C++ libraries robust against that kind of issue but :effort: and you know that if you man up and do it, some sperglord is going to put your library through a benchmark to mathematically prove that it's bad and you're bad and you should feel bad

there is literally no way to do c++ right

Notorious b.s.d.
Jan 25, 2003

by Reene

Mr Dog posted:

at least everything on linux uses the same libc, though i bet statically-linked proprietary software that exports a plugin API turns into a freakshow real fast

the linux linker is not that stupid. it technically supports rpath like solaris. distribution packages never need the feature but it means proprietary software is almost always dynamically linked

simplified explanation

linux-style linking
  • a config file contains a list of paths
  • ldconfig indexes the libraries in those paths and sticks the results in a cache
  • when you run a dynamic binary, the kernel starts ld-linux.so
  • ld-linux.so uses the cache to satisfy all the deps

solaris-style (sane) linking
  • at compile time, you specify a list of paths
  • the compiler stuffs the paths into an elf header field
  • the dynamic linker checks these paths at runtime

linux technically supports the latter, better system and vendors are usually smart enough to use it

when they are not, that is when the suffering begins. LD_PRELOAD abusers should be shot

pseudorandom name
May 6, 2007

Notorious b.s.d. posted:

there is literally no way to do c++ right
well, you could dynamically calculate object member and vtable offsets at runtime, but c++ spergs would whine about performance and go back to blowing out their L2 cache with their overcomplicated text substitution system

Sweeper
Nov 29, 2007
The Joe Buck of Posting
Dinosaur Gum

Janitor Prime posted:

current java stack trace:
code:
2014-03-11 22:31:04,342 ERROR http-thread-pool-38181(1) my.company.webapps.myapp.product.controller.DeviceOperations - There was an exception in the service layer
my.company.service.exception.ServiceException: Esn couldn't be deactivated because it was not found
        at my.company.licenselogic.OneLicensePerDeviceLogic.deactivateDevice(OneLicensePerDeviceLogic.java:79) ~[oneLicensePerDeviceLogic-1.0.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_25]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_25]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25]
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) ~[spring-tx-3.0.7.RELEASE.jar:3.0.7.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at com.sun.proxy.$Proxy573.deactivateDevice(Unknown Source) ~[na:na]
        at my.company.webapps.myapp.product.controller.DeviceOperations.deactiveDevice(DeviceOperations.java:73) ~[DeviceOperations.class:na]
        at my.company.webapps.myapp.product.controller.DeviceOperations$$FastClassByCGLIB$$ab049c08.invoke(<generated>) ~[cglib-2.2.jar:na]
        at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191) ~[cglib-2.2.jar:na]
        at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64) ~[spring-security-core-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
        at my.company.webapps.myapp.product.controller.DeviceOperations$$EnhancerByCGLIB$$8b40e193.deactiveDevice(<generated>) ~[cglib-2.2.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_25]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_25]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25]
        at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) ~[spring-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) ~[spring-webmvc-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) ~[javax.servlet-api.jar:3.0.1]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) ~[javax.servlet-api.jar:3.0.1]
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.security.web.authentication.[url]www.BasicAuthenticationFilter.doFilter[/url](BasicAuthenticationFilter.java:201) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) ~[spring-security-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) ~[spring-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) ~[spring-web-3.1.4.RELEASE.jar:3.1.4.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) ~[web-core.jar:3.1.2.1-SNAPSHOT]
        at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) ~[kernel.jar:3.1.2.1-SNAPSHOT]
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) ~[kernel.jar:3.1.2.1-SNAPSHOT]
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) ~[grizzly-http.jar:1.9.50]
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.ContextTask.run(ContextTask.java:71) ~[grizzly-framework.jar:1.9.50]
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) ~[grizzly-utils.jar:1.9.50]
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) ~[grizzly-utils.jar:1.9.50]
        at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
:eyepop:

you havent lived until youve seen the 20k line stack trace

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
if you approach C or C++ with the idee fixe that a PL exists somewhere fundamentally above the bare hardware you will fail every time

Notorious b.s.d.
Jan 25, 2003

by Reene

Gazpacho posted:

if you approach C or C++ with the idee fixe that a PL exists somewhere fundamentally above the bare hardware you will fail every time

c is portable pdp-11 assembly

c++ is an obfuscation layer

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
also if you're one of the people who says "C++'s edge cases have edge cases" shut the gently caress up, you're only saying that because you picked up a phony assumption somewhere and would rather pile on exceptions to it than look at the standard

Notorious b.s.d.
Jan 25, 2003

by Reene

Gazpacho posted:

also if you're one of the people who says "C++'s edge cases have edge cases" shut the gently caress up, you're only saying that because you picked up a phony assumption somewhere and would rather pile on exceptions to it than look at the standard

lol

look at this guy who thinks he understands the c++ standard

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

Gazpacho posted:

if you approach C or C++ with the idee fixe that a PL exists somewhere fundamentally above the bare hardware you will fail every time

au contrair, C violates plenty of assumptions that are safe in assembly and C++ violates even more. eg. there are probably many more broken C implementations of overflow checks for signed integers than working ones

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Notorious b.s.d. posted:

lol

look at this guy who thinks he understands the c++ standard
give me one example of an "edge case with an edge case"

Otto Skorzeny posted:

au contrair, C violates plenty of assumptions that are safe in assembly and C++ violates even more. eg. there are probably many more broken C implementations of overflow checks for signed integers than working ones
it would be contrair if i said that C and C++ are isomorphic to assembly language but i didn't

Gazpacho fucked around with this message at 05:49 on Mar 12, 2014

Notorious b.s.d.
Jan 25, 2003

by Reene

Gazpacho posted:

give me one example of an "edge case with an edge case"

that was not the objectionable part of your post

give me one example of how "look at the standard" clarified otherwise-inexplicable behavior for you

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Notorious b.s.d. posted:

that was not the objectionable part of your post

give me one example of how "look at the standard" clarified otherwise-inexplicable behavior for you
i don't exhaust every other possible source before checking the standard

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

Gazpacho posted:

it would be contrair if i said that C and C++ are isomorphic to assembly language but i didn't

you said that C and C++ both give you the "bare hardware", which is wrong, and the deviation of the semantics of c from the way the underlying hardware works is easiest to demonstrate with asm

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Otto Skorzeny posted:

you said that C and C++ both give you the "bare hardware"
nope

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
shitpost then backpedal, another fine night in the pos

Notorious b.s.d.
Jan 25, 2003

by Reene

Gazpacho posted:

i don't exhaust every other possible source before checking the standard

yeah just let me check this 1300 page draft standard to answer my questions

quote:

The return type of an overriding function shall be either identical to the return type of the overridden
function or covariant with the classes of the functions. If a function D::f overrides a function B::f, the return types of the functions are covariant if they satisfy the following criteria:
  • both are pointers to classes, both are lvalue references to classes, or both are rvalue references to
    classes

  • the class in the return type of B::f is the same class as the class in the return type of D::f, or is an unambiguous and accessible direct or indirect base class of the class in the return type of D::f

  • both pointers or references have the same cv-qualification and the class type in the return type of
    D::f has the same cv-qualification as or less cv-qualification than the class type in the return type of B::f

and of course all of the words in this passage have specific meanings inside the standard. and this is only page 241, the building blocks for later portions.

the c++ type system is comparable in complexity to the u.s. tax code. unlike the irs, my compiler will not accept a "defensible position" based on the standard if i gently caress it up

i mean holy gently caress dude i chose a page at random and found a tax worksheet for determining covariance

Adbot
ADBOT LOVES YOU

Notorious b.s.d.
Jan 25, 2003

by Reene
i would rather spend the rest of my life doing taxes than write c++ for money

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