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

Pages: 1-

lisp for scripting/extensions/plugins

Name: Anonymous 2016-09-28 7:39

which is the best one?

I'm starting a project which requires a bit of low-level programming (and I prefer to be able to deliver it as a self-contained binaries, without the user having to install any sort of lisp runtime) but I've grown used to s-expression syntax so it would be easier for me to implement most of the higher-level logic in something with a lot of parentheses. I'm thinking of writing a C program which consists mostly of a library of low-level functions and a main() that simply loads and executes some lisp scripts. I know Guile Scheme can do that but it's a GNU project so it might suck. what are the alternatives?

Name: Anonymous 2016-09-28 7:59

Name: Anonymous 2016-09-28 10:56

>>2
Wasting bits on tags is disgusting. 30-bit integers, ugh.

Name: Anonymous 2016-09-28 11:17

tinyscheme, s7, chicken, gambit-c, bigloo...
ecl, gcl and maybe even ccl

Name: Anonymous 2016-09-28 13:40

>>3
Hey, they will need to garbage collect the 32bits at some point.
You know computers can only store 250Million ints per GB of ram.
They add up. Just ask Ocaml developers.

Name: Anonymous 2016-09-28 14:04

but 30 is such an ugly number

Name: Anonymous 2016-09-28 15:49

>>6
Thats only your prejudices, dualist bytelord. 30 is a big beautiful even number with its own personality.
Great communication skills, being super-creative and entertaining are attributes of the number 30. 30 is popular and well liked by all and enjoy having a good laugh and a fun time. 30 is known to be a cheeky and charismatic energy.

People with the 30 energy love to talk! They despise upsetting others, and will go out of their way to avoid conflict. They do well when given the freedom to express themselves.

Name: Anonymous 2016-09-28 18:14

>>5
What the hell are you talking about? 30-bit integers are worse than 32-bit integers in all respects. The only reason any language would have them is if its creator was too inept to build in at least a primitive type system.

Name: Anonymous 2016-09-28 18:51

>>8
How can 30 bit integers even exist without a type system? I mean unless you're using a CDC 6600 or something, that's not consistent with any machine's word size. 8, 32, and 64 bits are the "natural" sizes for modern computers.

Name: Anonymous 2016-09-28 18:52

And if 32 bit ints take up too much space, just use 16-bit shorts for that.

Name: Anonymous 2016-09-28 18:53

Check em

Name: Anonymous 2016-09-28 19:01

>>9
They're 30-bit because the interpreter uses 2 bits for the type flag. It literally has just 4 types which it tests for at runtime. This is an ancient shitty trick used by Lispers to avoid implementing a real type system.

#define tag(x) ((x)&0x3)

switch (tag(v)) {
case TAG_NUM: fprintf(f, "%ld", numval(v)); break;
case TAG_SYM: fprintf(f, "%s", ((symbol_t*)ptr(v))->name); break;
case TAG_BUILTIN: fprintf(f, "#<builtin %s>",
builtin_names[intval(v)]); break;
case TAG_CONS:

Name: Anonymous 2016-09-28 20:26

>>12
4 types should be enough for anybody.

Name: Anonymous 2016-09-28 21:31

>>12
a real type system

why ruin your otherwise good posts with stuff like this?

Name: haskell weenie 2016-09-30 11:52

>>14
wherever i go i must also smugly shitpost about types

Name: Anonymous 2016-09-30 12:09

Real programmers use untyped languages

Name: Anonymous 2016-09-30 12:34

>>1
so it would be easier for me to implement most of the higher-level logic in something with a lot of parentheses.

You can use a lot of parentheses in C++ too, if you want.

Name: Anonymous 2016-09-30 12:37

>>17
lithp is a subset of sepples.

Name: Anonymous 2016-09-30 12:40

>>14
Have you read your TAPL today?

Name: Anonymous 2016-09-30 12:49

Clasp is a new Common Lisp implementation that seamlessly interoperates with C++ libraries and programs using LLVM for compilation to native code. This allows Clasp to take advantage of a vast array of preexisting libraries and programs, such as out of the scientific computing ecosystem. Embedding them in a Common Lisp environment allows you to make use of rapid prototyping, incremental development, and other capabilities that make it a powerful language.

Name: Anonymous 2016-09-30 13:20

>>20
Not mature enough. It's just a project by one guy.

Name: Adblock detected 2016-09-30 13:24

We have detected that you are using adblock on your web browser. Please disable adblock to view this content.

Name: Anonymous 2016-10-01 16:12

>>20
but I want literally the opposite. I don't want to compile lithp to native code, I want my native code to be lithp-scriptable without compilation. I want to use lithp the way people use lua

Name: Anonymous 2016-10-03 1:58

>>23
I suppose you don't like GNU Guile

Name: Anonymous 2016-10-03 2:11

>>23
C macros can emulate most of what Lisp does without any extra code.
http://w11.zetaboards.com/frozenbbs/forum/4210247/

Name: Anonymous 2016-10-03 5:20

>>25
#define inc0 1
#define inc1 2
#define inc2 3
#define inc3 4
#define inc4 5
#define inc5 6
#define inc6 7
#define inc7 8
#define inc8 9
#define inc9 10
#define inc10 11
#define inc11 12
#define inc12 13
What the fuck?

Name: Anonymous 2016-10-03 5:28

>>12
argmath.h is not used elsewhere in void.h its is provided as convenience macros for incrementing/decrementing constant literals at compile-time. Same functionality is available in Boost C++ Preprocessor headers(except the inc/dec generators at top)

Name: Anonymous 2016-10-03 5:31

>>26 argmath.h is actually optional(and never used so far in any code. its basically for Boost compatibility), and the only header that gets complained about. I'm removing it at next revision if there is interest.

Name: Anonymous 2016-10-03 5:35

Hmm there is one line using it actually:

//compile-time tuple selector:tuple format (condition(0=false,1-64=true),tupletrue,tuplefalse)
#define iftuple(texpr3) ntharg( incr(reduce0arg(ntharg(1,sdt(texpr3))),1) ,revargs(sdt(texpr3)))

Name: Anonymous 2016-10-03 6:49

argmath.h now removed from void.h(and some minor fixes to startup main macro)

Name: Anonymous 2016-10-03 7:14

C badly needs constexpr

Name: Anonymous 2016-10-03 19:41

I badly need these dubs

Name: Anonymous 2016-10-03 20:16

Check em

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