Hacker Newsnew | past | comments | ask | show | jobs | submit | topkekz's commentslogin

How come emacs shell still does not support input redirection? You have to do

    cat file | program
instead of

    program < file


Only skimmed the article but i think they want something like this

  <T> objc_msgSend(Object *receiver, String *method, ...)
  {
    return get_method(receiver->class, method)(receiver, ...);
  }
where the tail call is translated into an unconditional jump (like goto).

EDIT: this GNU C extension could help avoiding assembly for implementing objc_msgSend

https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Constructing-Ca...


That's nifty, but I don't think it quite gets you there:

"It is not always simple to compute the proper value for size. The value is used by __builtin_apply to compute the amount of data that should be pushed on the stack and copied from the incoming argument area."

If there was a variant that didn't need this size argument (would probably require being a tail call) then that would do it.


Could you do it with a C++ variadic template?


Sort of. If you did it that way, then the message dispatch code would get compiled into the calling code rather than being a separate function. That would work, but it would greatly increase code size, and would also mean Apple couldn't make incompatible changes to how messaging works without breaking old code. This last part is fairly important: Apple does make such changes, and the fact that objc_msgSend is part of the system means that old programs just keep on working. They've introduced non-pointer isas and tagged pointers this way.


That requires knowing types at compile time, and expands to just the code with the specific types used in the instantiation. That doesn't work with a virtual method dispatch kind of scenario where the types in the target method are not known to the runtime.


There are lisps being worked on to resolve points 1, 2, and 4.

https://github.com/tomhrr/dale

https://github.com/carp-lang/Carp


Ocarina of Time is running at 20 FPS on NTSC, 17 FPS on PAL, and is still fun. We started worrying about FPS when competitive online gaming became a thing (Quake 3, Counter-Strike, Unreal Tournament) and marketers associated high computer performance with high player performance (more fps you have, more good you will play).


>It's a shame the game is only available on the two most underpowered gaming devices.

The Switch is handheld gaming device.


Then I guess an alternate way to phrase it is that it's a shame Nintendo doesn't and won't have a current-gen normal TV console. Bizarre choice because they were already leading by far the mobile space among console developers.


Which touts as being a console as well, hence the name Switch. If they are calling it a console as well, I'm going to compare it to one.



i found the Racket library to be inconsistent, especially anything related to Vector.


Can you say more here? What things are we missing?


vector-immutable is unusable, all operations on vectors return a mutable vector forcing you to rely on vector->immutable-vector every time.

Vector lacks many operations that List has, it should be easier to interchange each others. Vector even lacks combinations despite this one being implemented by converting the list to a vector first.

https://github.com/racket/racket/blob/master/racket/collects...

I have encountered many inconsistencies like this.


Yes, immutable vectors are not a convenient data structure -- I recommend using one of the other random access functional data structures available as libraries, such as RRB trees.


https://truecraft.io/ (Minecraft beta 1.7.3)


Partial application and currying are two different things.


That's correct, I'm just responding to the specific case here.


I prefer car/cdr over first/rest since a list is an implicit type and cdr/car are actually operating on pairs that are not necessary part of a list.


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: