Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

LUA is FFOC

Name: Anonymous 2011-02-05 9:01

LUA is the toy language for those who enjoy the Forced Flushing Of L1/L2 Cache per operation. In fact, every operation causes several L2 cache misses during table look-ups, flushing both the L1 and L2 caches.

http://www.slideshare.net/hughreynolds/optimizing-lua-for-consoles-allen-murphy-microsoft

Enjoy your FFOC.

Name: Anonymous 2011-02-05 10:12

>>7
several orders of magnitudes [sic]
If by several you mean two, in the most contrived of cases, then sure. Not that you don't have a point...

Name: noko 2011-02-05 10:35

>>14
Because what's a couple of orders of magnitude between friends? 1ms per frame or 100ms per frame, who cares, except console gay developers who are all crazy?

Name: Anonymous 2011-02-05 10:52

>>15
I think >>14 was in support of the fact that cache-conscious code is important. He did after all say he had a point. He was just pointing out the exaggeration.

That said, performance improvements of hundreds of times is a big deal.

If you don't understand the memory model of your computational hardware, you will never be able to develop fast software for it.

Name: Anonymous 2011-02-05 11:04

I think they're saying their memory and CPUs suck.
Also, "No JITting since security model forbids executing on data." WTF.

Name: Anonymous 2011-02-05 11:32

>>16
You completely misunderstood >>14-san.

Name: Anonymous 2011-02-05 12:53

>>18
I think you have misunderstood >>16

YHBT

Name: Anonymous 2011-02-07 6:55

Etymology
From Proto-Oceanic (compare Malay luah).

Verb
lua
   1. to vomit

Name: Anonymous 2011-02-07 8:25

Lua's problem is that it uses hash tables for dispatching. This limits Lua to single dispatch in addition to making everything slow and rigid. You cant redefine `+` in Lua, as I do in my Lisp DSL

`+` a:Num b:Str -> "$a$b"
`+` a:Str b:Num -> "$a$b"


neither you can union two types

userFriendly? x:string? -> ye
userFriendly? x:picture? -> ye

Name: Anonymous 2011-02-07 8:28

And of course Lua doesnt have Lisp macros, which are very nice to have, especially when entering arbitrary complex game logic.

Name: Anonymous 2011-02-07 8:30

>>21
`+`
U MENA HASKAL‽

Name: Anonymous 2011-02-07 8:33

>>23
Haskell HAS NO MULTIDISPATCH
http://en.wikipedia.org/wiki/Multidispatch

Name: Anonymous 2011-02-07 8:56

>>24
Your ``in Lisp'' DSL is just Perl 6 with a lisp and ML/Haskell syntax:
Operator overloading (Perl 6 does it better)
Lisp macros (Perl 6 does it worse(?))
Multidispatch
Pattern matching
$
Num and Str
SYNTAX. SYNTAX EVERYWHERE

In conclusion:
WHBTC

Name: Anonymous 2011-02-07 9:01

>>25
>Operator overloading (Perl 6 does it better)
You wrong. DSL doesnt do operator overloading. It does pattern matching. That is: I can write

hasUserFriendlyObject [@_ x:userFriendly? @xs] -> [x xs]

meaning find first `userFriendly?` object, then return it and rest of the list. Doubt that Perl does this.

Name: Anonymous 2011-02-07 9:01

>>24
Haskell via Multi-parameter type classes
You just failed.

Name: Anonymous 2011-02-07 9:03

>>26
Or better yet:

hasUserFriendlyObject @_ x:userFriendly? @xs -> [x xs]

Because conceptually functions accept single argument - list.

Name: Anonymous 2011-02-07 9:04

>>27
>C/C++ via visitor pattern
we all see where haskell's place is - right between cobol and pascal

Name: Anonymous 2011-02-07 9:09

>>26,28
I'm sure you can, with a macro.

Name: Anonymous 2011-02-07 9:11

>>30
CL allows variable length arglists, so I dont even need macro for this.

Name: Anonymous 2011-02-07 9:13

>>31
Everything allows variable length arglists, so you don't even need a macro for this. But you need it for pattern matching.

Name: Anonymous 2011-02-07 9:14

>>32
Its embedded in `lambda`. So iam always a few keystrokes away from it.

Name: Anonymous 2011-02-07 9:16

>>33
It's embedded in `sub`. So I am always a few keystrokes away from it.

Name: Anonymous 2011-02-07 9:18

>>34
Please, implement >>28 in Perl.

Name: Anonymous 2011-02-07 9:22

>>35
Basically, it does a (drop-while user-friendly? xs), >>26,28 it's unscientific and ultimately bloated.

Name: Anonymous 2011-02-07 9:23

Lisp:

f [x _ @xs] -> x+xs.f

Haskell:

f = sum . map snd . filter (odd.fst) . zip [1..]

Name: Anonymous 2011-02-07 9:23

>>36
*(drop-while (negate user-friendly?) xs)

Name: Anonymous 2011-02-07 9:23

>>36
So, you cant? Q.E.D.

Name: Anonymous 2011-02-07 9:24

LISP:

f l -> subst l.max l.{[x]->x; [x _ @xs]->x+xs.rec}/l.len l


F#

let quux (a : array<int>) =
 
    let (s,_,m) = Array.fold
               <| fun (s,p,m) x -> let nx = if x > m then x else m
                                   if p then (s+x, false, nx)
                                        else (s,   true,  nx)
               <| (0,false,a.[0]) <| a
 
    Array.map  <| function | x when x=m -> s / (Array.length a / 2)
                           | x          -> x
               <| a

Name: Anonymous 2011-02-07 9:27

LISP:

clockwise[x@xs]->[@x@xs.transpose.rev.clockwise]

Haskell:

clockwise (x:xs) = x ++ (clockwise . reverse . transpose) xs
clockwise _ = []

Name: Anonymous 2011-02-07 9:27

>>39
So, you cant? Q.E.D.

sub faggot (@xs) { drop_while(@xs, { not userfriendly($^a) }) } # it assumes the existence of drop_while. Its implementation would be trivial anyway.

Name: Anonymous 2011-02-07 9:30

Lisp:

map ?*3 [1..3]


Perl 6:

<1 2 3>.map(-> $x {$x * 3})
3 6 9

Name: Anonymous 2011-02-07 9:31

>>42
No pattern matching. Q.E.D.

Name: Anonymous 2011-02-07 9:32

>>43
[1..3].map: * *3
3 6 9

Name: Anonymous 2011-02-07 9:32

>>43
Lisp:

3*[1..3]


Perl 6:

<1 2 3>.map(-> $x {$x * 3})

Name: Anonymous 2011-02-07 9:33

>>45
Bloated syntax is bloated.

Name: Anonymous 2011-02-07 9:33

I like Lisp but why does every thread nowadays transform into a Lisp thread after 30 posts?

Name: Anonymous 2011-02-07 9:35

>>44
multi sub faggot ($n) { "oh god how did i get here im not good with computers"}
faggot
multi sub faggot ("HAX MY") { "ANUS!" }
faggot
multi sub faggot ("I'm >>44 and love cocks") { "You are!" }
faggot
faggot("I'm >>44 and love cocks")
You are!
faggot("HAX MY")
ANUS!
faggot("sjdjksda")
oh god how did i get here im not good with computers

Name: Anonymous 2011-02-07 9:35

>>48
Because:
Lua's creators also state that Lisp and Scheme with their single, ubiquitous data structure mechanism (the list) were a major influence on their decision to develop the table as the primary data structure of Lua.

Name: Anonymous 2011-02-07 9:35

>>48
It's because they're getting desperate for recognition.

Name: Anonymous 2011-02-07 9:38

>>46

3*[1..3]
multi infix:<*>(Int $n, @a) { @a.map: * *$n }
infix:<*>
3*[1..3]
3 6 9


Your DSL is VALID PERL CODE

Name: Anonymous 2011-02-07 9:39

>>49

faggot _ -> "oh god how did i get here im not good with computers"
1.faggot "HAX MY" -> "ANUS!"
2.faggot "I'm >>49 and love cocks" -> "You are!"

code less, create more

Name: Anonymous 2011-02-07 9:39

>>53
You can do that with a macro.

Name: Anonymous 2011-02-07 9:41

Name: Anonymous 2011-02-07 9:41

Name: Anonymous 2011-02-07 9:41

>>54
Any sufficiently complicated Perl or Python program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of LISP.

Name: Anonymous 2011-02-07 9:42

Name: Anonymous 2011-02-07 9:43

>>57
The ``in Lisp'' DSL contains an ad hoc, informally-specified, bug-ridden, slow and unnecessary implementation of half of Perl 6, Haskell and ML on top of the already perfect LISP.

Name: Anonymous 2011-02-07 9:43

Name: Doctor Racket !RACKET/.HY 2011-02-07 9:46

In this thread: children.
I'm ashamed of myself to read these childish things.

Name: Anonymous 2011-02-07 9:51

Name: Anonymous 2011-02-07 9:53

>>>/g/

saged and reported for off topic

Name: Anonymous 2011-02-07 9:53

>>62
Yes.

Name: Anonymous 2011-02-07 9:57

Name: Anonymous 2011-02-07 10:00

Name: Anonymous 2011-02-07 10:02

>>66
Do it.

Name: Anonymous 2011-02-07 10:04

>>67
I would, but 0]=> perl6
macro
Macros are not yet implemented at line 1, near "\n"

Name: Anonymous 2011-02-07 10:14

Doesn't Lua's JIT assume that the mostly-read tables (such as _G) remain read-only until the JIT is explicitly told they have been modified (via a `check your damn assumptions' flag)? I don't feel like reading its sauce right nao, but I would guess its author would have been smart enough not to execute an entire damn hash table lookup at almost every VM cycle.

Name: Anonymous 2011-02-07 10:20

>>59
((((perfect ((((((LISP))))))))))

Name: Anonymous 2011-02-07 10:22

>>70
Invalid Lisp code.

Name: Anonymous 2011-02-07 10:27

>>69
Consoles forbid code-as-data, because this would allows to leave a backdoor for hackers. I heard Micro$ucks and Intel promise forbidding executing unsigned code even on PC platform, so to write code you will have to buy a developer's license from Intel.

Name: Anonymous 2011-02-07 10:29

>>72
Lost freedom - this is what you get for stealing jewish money by pirating movies, music and games.

Name: Anonymous 2011-02-07 10:32

>>72
Oh, yes. I hope Intel does it, so nobody will ever use again their shitty architecture and finally pass to something more sane.

Name: Anonymous 2011-02-07 10:36

>>72
You're not even responding to >>69. Also, incredibly weak troll.
-1/10

Name: Anonymous 2011-02-07 10:41

>>74
Sony does this with PS3 and nobody complains. Casual users wouldnt care, if you cant run LISP on your PC anymore.

Name: Anonymous 2011-02-07 10:48

wouldnt care, if you cant run LISP
I refuse to bitch tits.

Name: Anonymous 2011-02-07 10:50

>>77
wouldnt care, if you couldnt run LISP

Name: Anonymous 2011-02-07 10:53

>>76
``Aye cant run my krakkid myspacetunesbook 12.3 :((( y????''
``ur patch 2 pirate nfs mmfsq dusent run animore D= y???''
``my computar is broken it dont go well on nero 12 burning rom anymore >.>''
``hi i want 2 become an hax0r how do i compile my codes thx everybody''
``hi i tried to compile my c code liek in random tutorial but it doesnt run it sais itz not signed what does iet mean how do i signed it? heres the code goto-filled simple C commandline calculator that can do one operation at time plz halp?????''

Name: Anonymous 2011-02-07 10:53

>>78
wouldnt care, if you couldnt runt LISP

Name: Anonymous 2011-02-07 10:54

>>79
Technical support will shoot themselves within hours.

Name: Anonymous 2011-02-07 11:00

>>79
Normal people never compile code. They buy code in those big lame boxes or in web shops, like this Steam. Even better, they run code on a cloud computing service. Now you can even play Crysis as a service from remote server.

Name: Anonymous 2011-02-07 11:03

>>82
Normal people:
``Aye cant run my krakkid myspacetunesbook 12.3 :((( y????''
``ur patch 2 pirate nfs mmfsq dusent run animore D= y???''
``my computar is broken it dont go well on nero 12 burning rom anymore >.>''


Proof that people like:
``hi i want 2 become an hax0r how do i compile my codes thx everybody''
``hi i want 2 become an hax0r how do i compile my codes thx everybody''

exist: http://ubuntuforums.org/forumdisplay.php?f=39

Name: Anonymous 2011-02-07 11:04

>>83
go fuck you'reself

Name: Anonymous 2011-02-07 11:06

>>83
ubuntuforums.org
Normal people
/0

Name: Anonymous 2011-02-07 11:17

>>85
can't read.
0/0

Name: Anonymous 2011-02-07 11:42

>>21
Your ``Lisp'' DSL what?  Does it compact lists into lists of 128-byte arrays to fit its shit into 128 bytes?  Did you even test it with major CL implementations for L1/L2 usage?

If not, go back to your LISP threads where you can freely continue to ignore requests for source code of your pile of syntax.

Name: Anonymous 2011-02-07 11:57

>>87
where you can freely continue to ignore requests for source code of your pile of syntax.
I LOVE YOU! I LOVE YOUR POST! I READ IT FIVE TIMES! KEEP POSTING!

Name: Anonymous 2011-02-07 12:06

>>87
If you care about bytes, you should write assembly.

A Lisp programmer knows the value of everything, but the cost of nothing. — Alan Perlis

Name: Anonymous 2011-02-07 12:21

>>89


                                  _____
                                 /rispu\
                                 \_____/
             ,----,._               /
         _,-'        `---,__,-,    /
       ,'                    @ `; /
    _.'       ____            ,_)
           .-'    `-,....._   `-,
         ,'                ``'''
        ;
    _.-'

Name: Anonymous 2011-02-07 12:23

>>90
An elephant's trunk?

Name: Anonymous 2011-02-07 13:38

>>87
Bookmarked. Will post again.

Name: Anonymous 2011-02-07 14:28

>>88
What is a Lisp? A miserable little pile of syntax!

Name: Anonymous 2011-02-07 14:47

>>93
Have at you!

Name: Anonymous 2011-02-07 15:03


Richman Stallmont:    Die Python! You don't belong in this world!
FIOCula:        It was not by my hand I am once again given FIOC. I was called here by GvR who wish to pay me whitespaces.
Richman Stallmont:    Whitespaces? You steal men's indentation, and make them your slaves!
FIOCula:        Perhaps the same could be said of all languages.
Richman Stallmont:    Your words are as forced as your indentation! Lispers ill-need a savior such as you!
FIOCula:        What is a Lisp? A miserable little pile of parentheses! But enough talk... Have at you!

Name: Anonymous 2011-02-07 15:13

>>95
Oh man that was hilarious. 10/10

Name: Anonymous 2011-02-07 15:34

>>87
Does it compact lists into lists of 128-byte arrays
Actually it uses 64-byte arrays for small lists and normal array indexing to access object fields. So I dont see any fundamental problems for efficiency.

Name: Anonymous 2011-02-07 15:36

>>97
Actually it uses 64-byte arrays for small lists
Think of the cudders! You monster!

Name: Anonymous 2011-02-07 15:50

>>98
CDR just creates new array, because lists're immutable. For big arrays it uses displacement.

Name: Anonymous 2011-02-07 15:56

>>99
That's not what I meant to say, you're a monster, you destroy the child cudders' dream to cons up and become a valid evaluable argument list and live happy being applied to the procedure till its garbage collection by deviating him to be a dirty AIDS-ridden drug-addicted no life array of int64s. You have no heart, how can you call yourself a Lisper, if you're so insensible to cudders‽‽

Name: Anonymous 2011-02-07 15:57

>>99
>immutable
This wont lead to loss of efficiency, as ususual Lisp coding style on lists is map@reducing them.

Name: Anonymous 2011-02-07 16:03

>>100
Cons-pairs are obsolete. Love how Clojure dealt with them. Rich is a genius!

Name: Anonymous 2011-02-07 16:07

>>102
Cons-pairs are obsolete
Love how Clojure

Clojure

0/10 definitely a troll.

Name: Anonymous 2011-02-07 16:24

>>103
whats wrong with clojure?

Name: Anonymous 2011-02-07 16:41

Name: Anonymous 2011-02-07 16:44

>>105
typical scheme fanboy rants

Name: Anonymous 2011-02-07 16:45

>>106
typical clojurer? response.

Name: Anonymous 2011-02-07 16:46

>>107
Clojure is our future. Deal with it.

Name: Anonymous 2011-02-07 16:49

>>108
They said the same of Ruby    , Python, they still say it for Scala and Go    . I think not.

Name: Anonymous 2011-02-07 16:51

>>109
Ruby, Python, Scala and Go dont have macros.

Name: Anonymous 2011-02-07 16:52

>>109
What is our future, then?

Name: Anonymous 2011-02-07 16:53

>>108
Clojure has nomads[1], everything that implements in some way monads and makes it available to everyone in some standard way (clojure-contrib) will never become future nor mainstream.

References
[1] http://richhickey.github.com/clojure-contrib/monads-api.html

Name: Anonymous 2011-02-07 16:58

>>110
Clojure has unhygienic macros. Unhygienic unhygienic unhygienic unhygienic. b]U[/b]nhygienic macros in 2011‽ Do I still need to worry about not shadowing my macro's symbols? Maybe prepend my function name with org.clojure.core/list or shit like that.

>>111
Until they make a good CL substitute, CL.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List