<nationalist_devl>
anyone doing big data anlytics with lisp?
<aeth>
these are probably most likely to be "secret" Lisp projects, rather then publicized ones
Inline has quit [Ping timeout: 272 seconds]
<aeth>
grumpyvegetable, ldb: okay, then that is a lot like DESCRIBE except if DESCRIBE locked you into a mode
<aeth>
well, help() itself locks you into a mode where you just type "str", but help(str) just describes the string class (that was its example) at the REPL
<aeth>
grumpyvegetable: If it's just generated from docstrings, then it's very similar to CL's describe, which is also a language with docstrings
<aeth>
Afaik, Python basically took the docstrings from CL
<aeth>
DESCRIBE on built-ins isn't very good. Someone needs to write some high-quality, public domain documentation that every implementation can just use for those IMO.
<aeth>
Some libraries might have comparable-to-Python's-help() levels of detail, though
<Bike>
shouldn't it be documentation rather than describe
sjl has joined #lisp
heisig has joined #lisp
heisig has quit [Remote host closed the connection]
<HiRE>
I wonder how well CL would run a rpi 4 b+
<HiRE>
I have one sitting here
<HiRE>
doing nothing
<HiRE>
deployed one for a pihole, I should make this one into a home automation thing
<aeth>
Well, implementations are most full featured on x86-64, like most niche languages whose niches don't include mobile apps.
davepdotorg has joined #lisp
<aeth>
So you might have some issues on ARM, although ARM64 will probably avoid some of those
<HiRE>
pi 4b+ is arm 64
<HiRE>
seems SBCL has an older compiler available.
<HiRE>
1.4.2
<aeth>
iirc, the default OS itself for Pi's is still 32-bit
<HiRE>
oh thats crap
<HiRE>
I'll need to look into that
<aeth>
A lot of people in the C world have the attitude that if it's not addressing > 4 GB RAM, then 32-bit is OK... but in the CL world, 64-bit has advantages that don't really matter to C programmers, like fewer tagged types
<HiRE>
could you elaborate? This is something I've never had to consider.
<HiRE>
I mean I understand the C argument
<HiRE>
but fewer tagged types im not following
orivej has quit [Ping timeout: 246 seconds]
<p_l>
HiRE: it's perfectly possible to run 64bit on Pi, it's just that Raspbian is 32bit as it wants to keep compatibility with first two versions
<aeth>
In the typical CL implementation, types are tagged. That is, if they don't fit in a word with the type tag included, then they have to be heap allocated even when they wouldn't be in a fully-static language like C. This is "boxing", a term originally from Java iirc.
<HiRE>
oh tagged types are like boxing - makes sense. If it doesnt fit tag it and heap allocate it that way we know what it is.
<aeth>
A 32-bit implementation boxes single-floats. A 64-bit implementation only boxes double-floats.
<p_l>
HiRE: it's easier to fit more tags while keeping usable data when your word size is 64bit than 32bit
<HiRE>
interesting...I thought floats would fit in a 32 bit register
<HiRE>
I guess you have arbitrary precision to worry about
<Bike>
the point is that tags mean you only have, say, 30 bits to work with
<Bike>
so obviously you can't fit a 32 bit float in there
<aeth>
64-bit SBCL (at least on x86-64) uses 1 bit to tag a fixnum so its non-bignum integers can express 63 bit signed bytes or 62 bit unsigned bytes. This is the theoretical maximum of expressiveness for this implementation approach. For 32-bit, the maximum is 30-bit unsigned and 31-bit signed, but even SBCL doesn't do this.
<HiRE>
ah yes, you need a few bits for the tag.
davepdotorg has quit [Ping timeout: 246 seconds]
<aeth>
So when you're losing like 4-5 bits, it suddenly matters a lot... 32-bit implementations have tiny fixnums
<HiRE>
What would be the need for SBCL to use such a large tag in 32 bit?
<aeth>
And limits of everything are usually expressed in unsigned (the top half of) fixnums, e.g. array lengths, etc...
<aeth>
HiRE: I'm guessing that 32-bit is considered "legacy" (since SBCL is x86-first) so they just never bothered to optimize the tag bit to 1 like in 64-bit, but I'm not sure if there's a more serious blocker.
<aeth>
even still, (- (expt 2 30) 1) is tiny while (- (expt 2 62) 1) is probably good enough for most people
<HiRE>
yeah the other thing I am contending with is I probably wont need arbitrary precision
<HiRE>
my use would be something dumb like automating watering my garden
<aeth>
Oh, and since the limits of things depend on fixnums, you can't fill 4 GB of RAM in one array, since arrays have limits.
<aeth>
You'd probably need 4+ arrays
<HiRE>
CL would be nice because I could just create a DSL for watering plants and modify it on the fly.
<p_l>
HiRE: Common Lisp implementations using tagged 32bit words is why X11 IDs are 29 bit
<HiRE>
this is interesting. Im sure that is in the grimoire of SBCL somewhere
orivej has joined #lisp
<p_l>
more X11. At the time when such a decision was made, I think the latest was CMUCL, then-recently renamed from SPICE Lisp
<HiRE>
and SBCL is a direct decendent of CMUCL right
efm has joined #lisp
<no-defun-allowed>
Yes.
random-nick has quit [Ping timeout: 256 seconds]
space_otter has quit [Remote host closed the connection]
Josh_2 has joined #lisp
karlosz has joined #lisp
Josh_2 has quit [Remote host closed the connection]
EvW has quit [Remote host closed the connection]
EvW1 has joined #lisp
bitmapper has quit [Ping timeout: 255 seconds]
Necktwi has quit [Read error: Connection reset by peer]
ldb has quit [Ping timeout: 246 seconds]
Necktwi has joined #lisp
karlosz has quit [Quit: karlosz]
lemoinem has quit [Read error: Connection reset by peer]
lemoinem has joined #lisp
_whitelogger has joined #lisp
orivej has quit [Ping timeout: 240 seconds]
torbo has quit [Remote host closed the connection]
nowhere_man has quit [Read error: Connection reset by peer]
shangul has joined #lisp
semz has joined #lisp
semz has quit [Changing host]
semz has joined #lisp
bilegeek has quit [Quit: Leaving]
karlosz has quit [Quit: karlosz]
EvW1 has quit [Ping timeout: 272 seconds]
ebzzry has joined #lisp
shangul has quit [Ping timeout: 250 seconds]
space_otter has joined #lisp
shangul has joined #lisp
KDr21 has quit [Remote host closed the connection]
<oni-on-ion>
ohhh
<oni-on-ion>
my favorite is "lisp, jazz, aikido"
KDr21 has joined #lisp
KDr21 has quit [Remote host closed the connection]
KDr21 has joined #lisp
igemnace has joined #lisp
alfonsox has joined #lisp
ebzzry has quit [Read error: Connection reset by peer]
ebzzry has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
Jeanne-Kamikaze has quit [Quit: Leaving]
krid has quit [Ping timeout: 240 seconds]
ebzzry has quit [Read error: Connection reset by peer]
pilne has quit [Quit: Now if you will excuse me, I have a giant ball of oil to throw out my window]
<beach>
Good morning everyone!
Bike has quit [Quit: Lost terminal]
Josh_2 has joined #lisp
<HiRE>
morning beach
Bourne has quit [Remote host closed the connection]
ebzzry has joined #lisp
<beach>
HiRE: A friend of mine says he always installs Ubuntu on the Raspberry Pi.
<HiRE>
Isnt raspian just a *buntu?
<beach>
I am afraid I don't know. He meant 64-bit Ubuntu though.
<HiRE>
ah yes I will have to try it
<HiRE>
I thought it would be a fun more simple project to try to automate something in my house before departing on a long journey to writing a library
<HiRE>
especially since I have the hardware sitting here doing nothing
<beach>
I had hoped the ARM architecture would be much simpler than that of x86-64, in which case I would have written a code generator for SICL, targeting the ARM, but I got discouraged reading the ARM documentation.
<HiRE>
ARM is MIPS right?
<no-defun-allowed>
Raspbian is based off Debian.
<no-defun-allowed>
It also diverges enough that Debian packages are unlikely to work on Raspbian.
<beach>
HiRE: I don't think so.
<no-defun-allowed>
No, ARM is a separate architecture. Do you mean RISC?
<HiRE>
In my compiler classes I never got to code generation implementation. By the time I hit grad school I was off in mathy computational geometry land :)
<HiRE>
RISC*
<HiRE>
yes
<HiRE>
sorry
<no-defun-allowed>
I'm sure there's less instructions than x86_64, but there's still quite many.
<HiRE>
would explain why SBCL hasnt updated their ARM64/ARM ports in a long time
<beach>
no-defun-allowed: "fewer". Less stuff, fewer things.
aeth has quit [Ping timeout: 260 seconds]
<HiRE>
perhaps its just significantly more difficult
<no-defun-allowed>
beach: Thanks, good point.
<HiRE>
I did some RISC work in my architecture classes and while it was contrived I found the assembly more pleasurable to write
<HiRE>
optimization however, is probably another thing entirely.
aeth has joined #lisp
<beach>
From reading the documentation, I believe the ARM just barely qualifies as RISC.
<beach>
Add to that the multiple encoding schemes for the instructions.
ebzzry has quit [Remote host closed the connection]
nowhere_man has joined #lisp
shifty has quit [Ping timeout: 246 seconds]
gravicappa has joined #lisp
gxt has joined #lisp
g0d_shatter has joined #lisp
<nationalist_devl>
sounds risky
_whitelogger has joined #lisp
montxero has joined #lisp
vlatkoB has joined #lisp
gko has joined #lisp
v88m has quit [Ping timeout: 240 seconds]
nationalist_devl has quit [Quit: Lost terminal]
Bourne has joined #lisp
ebzzry has joined #lisp
troydm has joined #lisp
aeth has quit [Ping timeout: 246 seconds]
aoh__ has left #lisp [#lisp]
aeth has joined #lisp
ebzzry has quit [Read error: Connection reset by peer]
narimiran has joined #lisp
aeth has quit [Ping timeout: 240 seconds]
ebzzry has joined #lisp
dale has quit [Quit: My computer has gone to sleep]
aeth has joined #lisp
dddddd has quit [Ping timeout: 265 seconds]
ebzzry has quit [Read error: Connection reset by peer]
_whitelogger has joined #lisp
heisig has joined #lisp
alfonsox has quit [Ping timeout: 240 seconds]
karlosz has joined #lisp
alfonsox has joined #lisp
orivej has joined #lisp
flamebeard has joined #lisp
Cymew has joined #lisp
shka_ has quit [Ping timeout: 250 seconds]
shka_ has joined #lisp
ArthurStrong has joined #lisp
Duuqnd has joined #lisp
megalography has joined #lisp
shka_ has quit [Read error: Connection reset by peer]
ukari has quit [Remote host closed the connection]
ebzzry has quit [Read error: Connection reset by peer]
ukari has joined #lisp
shka_ has joined #lisp
ebzzry has joined #lisp
Lycurgus has joined #lisp
space_otter has quit [Remote host closed the connection]
<alfonsox>
I think it may be treaing values as string
<MichaelRaskin>
It definitely is
<MichaelRaskin>
And it also gives you argument 0, how the program name was specified
<splittist>
alfonsox: what does your MAIN function look like? What does it do to ARGV? Are you doing this to explore building command-line apps, or common lisp?
<splittist>
right. Knowing nothing about buildapp, I imagine it is going to arrange to call your entry function with a list of strings, being the command-line arguments the executable was called with (including the name of the executable as the first element of the list). CALCULATE-INTEREST, however, does not accept such a list.
<splittist>
It is your responsibility as the application writer to give meaning to that list of strings. Looking at the buildapp web page, this seems correct. (This is also how every other language does things, as far as I know.)