Yes, that's the problem. I should have said it all works fine if this
is an abstraction loaded with actual arguments. But I still wonder if
there's anything I can do.
There is: just don't do it :-) It doesn't make sense to use $1 in the
context of a top-level canvas (until we get
Hi, when using A_GIMME I can test if the type is A_FLOAT or A_SYMBOL,
but if I give it a "$1", for instance, it's treated as a float.
Well, it depends on the actual value of "$1". In the case of
[cyclone/play~ $1], the "$1" is replaced by its actual value before
being passed to the object.
Maybe IOhannes & Christof can give their take? Also, I believe the PR
includes a compile-time define to enable/disable.
I think the PR is already in very good shape. The public API functions
(in s_stuff.h) look reasonable. I have to admit I haven't checked the
most recent commits yet, but I'll
However, it would only show the dialog for a split second and the
crash. I ran it in a debugger and just get a completely wiped stack.
If I remove the "quit" message, it works.
you only have to run the exploit.pd once (and it will always quit Pd).
the next time you simply start Pd, you
bugger and just get a completely wiped stack. If I
remove the "quit" message, it works.
So how do I pay the money?
Christof
On 31.08.2021 15:49, IOhannes m zmoelnig wrote:
On 8/31/21 3:12 PM, Christof Ressi wrote:
The exploit successfully changes my MIDI settings and adds search
paths
The exploit successfully changes my MIDI settings and adds search paths,
but unfortunately it crashes with a completely wiped stack before
showing me the Tk dialog :-(
On 31.08.2021 14:33, IOhannes m zmoelnig wrote:
On 8/31/21 1:05 PM, IOhannes m zmoelnig wrote:
¹ i wonder whether it would
and you have a mix of old-style and new-style loglevels in use.
Yeah, that's a general problem we can't really avoid.
Here's another suggestion:
Since logpost() really supersedes verbose(), we could allow t_loglevel
to be only used with the former (with PD_CRITICAL = 0), but not with the
for unknown reasons, the values accepted by verbose() and logpost()
have an offset.
Why? Oh why?
I have to admit I only checked with verbose() (which is used extensively
in the Pd source code) and naively assumed that logpost() would work the
same...
Here's a possible solution:
If we let
Hi,
in this commit, "print_anything()" and "print_list()" now (ab)uses the
new "startlogpost()" function for printing individual pd atoms. However,
for "-stderr" and custom printhooks this will accidentally print
"verbose(2) " before each atom.
I would suggest to add another function
My understanding has always been: m_pd.h is public and generally
shouldn't change without some sort of compatibility coverage. Anything
other .h is private.
That's the theory. On the other hand, many functions/variables in
"g_all_guis.h", "s_stuff.h" and "m_imp.h" are marked as "EXTERN" (which
I agree that the prototypes should be fixed. Actually, it's not that
bad, just 21 instead of 6 prototypes, if I'm not mistaken:
https://github.com/pure-data/pure-data/pull/688#discussion_r684245557
On 06.08.2021 13:26, Claude Heiland-Allen wrote:
Hi,
On 05/08/2021 22:32, Christof Ressi wrote
, Christof Ressi
mailto:i...@christofressi.com>> escreveu:
Hi Matt,
if you mix A_FLOAT / A_DEFFLOAT and A_SYM / A_DEFSYM in any Pd
method definition (not just the "new" method!), the arguments are
rearranged so that in the actual C function signature all the
Hi Matt,
if you mix A_FLOAT / A_DEFFLOAT and A_SYM / A_DEFSYM in any Pd method
definition (not just the "new" method!), the arguments are rearranged so
that in the actual C function signature all the symbol arguments come
first.
Here's an especially confusing example:
foo_class =
Hi Miller,
isn't this the perfect use case for the compatibility flag? Or do you
think the change would be too invasive? After all, you have also changed
the frequency response of [hip~] (Pd 0.44) and the behavior of the
[stop( method for [line] (Pd 0.48).
I'm still
struggling to figure
Am I right to assume that this would include writing arrays to disk without
interfering with the audio thread?
I don't think so, but there's already a separate PR for that:
https://github.com/pure-data/pure-data/pull/1357
Actually, I am not sure what Giulio meant with "disk I/O". Maybe that
It's tricky getting everything to fit in 512K RAM - I think the new
ESP32S3 has the same memory size, so that will be the limiting aspect.
On the ESP32-S2 it's possible to use up to 4MB of external RAM:
https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-guides/external-ram.html
Hi Miller,
great to see Pd 0.52 approaching!
Here's a list of my open PRs:
https://github.com/pulls?q=is%3Aopen+is%3Apr+author%3ASpacechild1+archived%3Afalse+user%3Apure-data
I made sure that they all apply cleanly.
---
Some are trivial:
* https://github.com/pure-data/pure-data/pull/769
The recommended way is MinGW via msys2. See the "Windows" section in
https://github.com/pure-data/pure-data/blob/master/INSTALL.txt.
Christof
On 14.06.2021 22:47, Iain Duncan wrote:
Hi folks, I know windows just enough to be dangerous to myself, but
would like to at least be able to prepare
i quite like the idea of having a canvas-scope for such an object.
Personally, I would rather prefer that if the error code would be simply
output by the same object that generated the error.
On 6/14/21 10:37 AM, Peter P. wrote:
> Yes, that's a good idea, but what if there are two identical
Hi,
this is a bit of a XY question. The actual problem is about managing
clocks. Let's see if we can find a proper solution.
I would assume that you are storing the clock(s) alongside the
interpreter instance. If you restart the interpret, unset the clock(s)
with clock_unset(). If you free
getbytes() + freebytes()
Christof
On 07.06.2021 03:56, Iain Duncan wrote:
Ah, ok. I also just realized (necessity being the mother of and all
that) that I can probably be storing these on the scheme side too, as
the actual function object is stored there anyway in a hash-table.
Related: in
You can (ab)use Pd's own symbol table by storing the clocks in a "fake"
Pd object and bind it to a symbol. But I wouldn't really recommend this...
Alternatively, you can use one of the existing hash table
implementations in C, e. g. the hash table from the "stb" library:
Hi,
what you want is a "t_clock". clock_new() takes a function pointer +
void pointer. You can then schedule the function for execution with
clock_delay().
For a simple example, check the source code for the delay object
("t_delay") in "x_time.c".
Christof
On 07.06.2021 01:21, Iain
Actually, I just realized that the guide doesn't mention clocks at all,
not even in the API reference section.
On 30.04.2021 15:51, Christof Ressi wrote:
It could go to the examples in
https://github.com/pure-data/externals-howto. Also, there should be an
example or note about using a clock
30, 2021, at 12:00 PM, pd-dev-requ...@lists.iem.at
<mailto:pd-dev-requ...@lists.iem.at> wrote:
Message: 2
Date: Thu, 29 Apr 2021 23:12:12 +0200
From: Christof Ressi <mailto:i...@christofressi.com>>
To: pd-dev mailto:pd-dev@lists.iem.at>>
Subject: Re: [PD-dev] Polling: Execu
Here's how:
struct t_myexternal {
t_object x_obj;
t_clock *x_clock;
int x_running;
};
void tick(t_myexternal *x)
{
// do some work
// then reschedule (if not cancelled)
if (x->x_running)
clock_delay(x->x_clock, POLLINTERVAL);
}
void start(t_myexternal *x)
{
Here are a couple of Pd externals you could study to get you started:
https://github.com/pd-externals
Also, the pdlua external might be of interest, but it uses rather
advanced techniques: https://github.com/agraef/pd-lua/blob/master/pdlua.c
Christof
On 11.04.2021 01:00, Iain Duncan wrote:
Hi Gloria,
generally, it is very much recommended to use
https://github.com/pure-data/pd-lib-builder for building Pd externals.
As Lucas' example shows, pd-lib-builder is very easy to use (only three
lines!) and it allows other people to build your external for all the
major platforms
that for "ugly" lines like
`!strcmp(argv[i].a_w.w_symbol->s_name, ">")`
saving the string in a local variable would already increase readability
significantly:
const char *s = argv[i].a_w.w_symbol->s_name;
if (!strcmp(s, ">")) ...
Christof
On 11.
the main purpose of the the symbol table is, as i understand it, to
make string comparison super-fast (as there's no need to compare each
character but just a simple address).
It is only fast if both sides are `t_symbol *`, but if one side includes
a call to gensym(), it will be *slower* than
To give some more background info:
When you close a UDP socket, the port becomes available immediately,
because UDP is connectionless.
With TCP, however, a closed socket remains in the TIME WAIT state for
some time during which the port still appears to be taken (for an
explanation, see
of soundtouch ;-)
Christof
On 29.01.2021 11:41, Roman Haefeli wrote:
On Fri, 2021-01-29 at 11:21 +0100, Christof Ressi wrote:
~~~
$ pd -open soundtouch~-help.pd
pd: AAFilter.cpp:107: void soundtouch::AAFilter::calculateCoeffs():
Assertion `length >= 2' failed.
Pd: signal
~~~
https://bugs.launchpad.
For it to compile on amd64, I had to add '-fPIC' to LINUXCFLAGS.
'-fPIC' should be set for all Linux targets and also macOS. Generally,
you hardly ever want to build a shared library without position
independent code. Windows doesn't have an equivalent flag because DLLs
are always position
You also need to be sure that the first class is loaded before, like:
[declare -lib sender -lib receiver]
else the receiver object won't load because of link error due to
missing symbol "send_test_class".
Ugh, one more reason for having all objects in a single binary :-)
On 19.01.2021 23:31,
9.12.2020 16:22, David Rush wrote:
On Wed, 9 Dec 2020 at 14:53, Christof Ressi <mailto:i...@christofressi.com>> wrote:
indicating that _WIN32 is not defined.
So if I instead build with CFLAGS=-D_WIN32, I get a different set
of errors while building s_inter.c
If "
indicating that _WIN32 is not defined.
So if I instead build with CFLAGS=-D_WIN32, I get a different set of
errors while building s_inter.c
If "_WIN32" is not defined by the compiler, something is going very wrong...
usr/lib/gcc/x86_64-pc-msys/10.2.0/../../../../x86_64-pc-msys/bin/ld:
extensions.
---
Maybe I can sum it up with:
Don't use alloca() unless you have a good reason, know how it works
internally and are aware of all its problems :-).
Christof
On 05.12.2020 12:54, Christof Ressi wrote:
Your concerns are certainly warranted.
But if the function is
a) never called
refuses to inline functions if they contain alloca()
statements. What can go wrong with inlined functions containing
alloca(): https://stackoverflow.com/a/3410689/6063908
On 04.12.2020 16:57, Jonathan Wilkes wrote:
> On Friday, December 4, 2020, 9:43:20 AM EST, Christof Ressi
wrote:
>
alloca() "allocates" memory on the stack. This is done by simply
incrementing the stack pointer. So it's extremely fast and - more
importantly - equally fast for all sizes.
malloc(), on the other hand, actually uses the system memory allocator
which can take arbitrarily long and might even
I'd strongly advise to avoid it in general.
For general purpose code I would agree, but for realtime safe code we
want to avoid dynamic memory allocation and careful use of alloca() is
perfectly fine. But there are caveats.
In fact, we had a crasher in FFT objects which used temporary buffers
Off topic.
Since C++11, using raw "new" is a code smell, because it easily causes
problems as the one below. Instead use smart pointers, which will
automatically free the memory once they go out of scope:
auto at = std::unique_ptr(new t_atom[c]);
Or even better, but requires C++14:
auto at
I agree that its probably preferred to have matching architectures
between Pd-core and Pd-GUI, but is it a requirement?
I would say yes.
Obviously, the wish app can have a different architecture than the core.
The only requirement is that the pdfontloader library has the same
architecture as
FYI, this is now fixed on current master via
https://github.com/pure-data/pure-data/commit/afb43ee827ee84ac79e1f03c56384d29e249f785.
Christof
On 27.10.2020 16:49, Andi McClure wrote:
I am building puredata via libpd on Android (a fork off
0.51/d5766fd0). I am doing this by loading the libpd
Hi,
here's the explanation:
https://github.com/pure-data/pd-lib-builder/blob/e6cff665a3a30a967c72c382c6fe92bcdedd7b44/Makefile.pdlibbuilder#L45
"class.sources" assumes one source per class. What you need is
".class.sources", i.e. "s4pd.class.sources = s4pd.c s7.c"
"common.sources" would
Hey, I've just updated the PR to also use "STUPID_SORT" on Android.
Christof
On 27.10.2020 18:17, Claude Heiland-Allen wrote:
Hi Andi,
On 27/10/2020 15:49, Andi McClure wrote:
I am building puredata via libpd on Android (a fork off
0.51/d5766fd0). I am doing this by loading the libpd
AM Christof Ressi
wrote:
Hi, Pd doesn't have a notion of global transport time, it just knows about
logical time. People can (and have) build their own transport abstractions
on top of that.
For further inspiration you could look into Supercollider's TempoClock
class. The idea is that each
, Oct 25, 2020 at 4:21 AM Christof Ressi <mailto:i...@christofressi.com>> wrote:
Actually, there is no need to use a clock for every scheduled LISP
function. You can also maintain a seperate scheduler, which is
just a priority queue for callback functions. In C++, you coul
ore the priority queue
t_scheduler *x = getbytes(sizeof(t_myscheduler));
t_clock *clock = clock_new(x, (t_method)myscheduler_tick);
x->clock = clock;
On 25.10.2020 02:02, Iain Duncan wrote:
Thanks Christof, that's very helpful.
iain
On Sat, Oct 24, 2020 at 5:53 PM Christof Ressi <mail
A) Am I right, both about being bad, and about clock pre-allocation
and pooling being a decent solution?
B) Does anyone have tips on how one should implement and use said
clock pool?
ad A), basically yes, but in Pd you can get away with it. Pd's scheduler
doesn't run in the actual audio
, with
[myabs foo], they are in global scope.
Christof
On 16.08.2020 13:10, Christof Ressi wrote:
The purpose of subpatches is to hide stuff. If you feel the need for
creation arguments, it is a good indication that you really should be
using an abstraction instead. That's what they are made
I am pretty sure this is an oversight. The header contains struct
declarations, so it must be guarded and #defines, so it must be guarded.
On 11.08.2020 11:39, Dan Wilcox wrote:
Howdy all,
I noticed today that g_all_guis.h does not have #if/#def include
guards. Is this an oversight or is
The error message comes from a IEM GUI element. Please try to reduce the
abstraction to the minimum (while still triggering the error reliably)
and share it with us!
Christof
On 30.06.2020 23:57, Eric Lennartson wrote:
Got this error while making an abstraction. Only happens when I load
the
I'm not sure I understand the issue. Pd obtains the bounding rect of a
GUI object (by calling w_getrectfn in gobj_getrect()) to determine
whether it should be visible or not and then calls the w_visfn as
needed, see gobj_shouldvis(). This means you shouldn't have to perform
the bound check
As per the usual Apple grumbling I will say "nobody is forcing people
to buy an Apple product."
True from a user's perspective. For open source cross-platform
developers the story is a bit different.
Supporting is another story, but now there are people like me to help
and I don't often feel so
but knowing Apple they might well change the file format anyhow just to force
some more upgrades
Yes, from what I understood from the articles I've read, they want to
create a new file format for fat x86_64 / arm binaries.
What I don't understand is: the FAT format already supports all kinds
suspicion is rather that I'm not reading from all inlets before
writing to the outlets.
On 31.05.2020 21:49, Christof Ressi wrote:
In Pd, signal inlets and outlets can share the same buffer. Therefore
it is important that for any given sample index you never write to any
outlet before reading from a
In Pd, signal inlets and outlets can share the same buffer. Therefore it
is important that for any given sample index you never write to any
outlet before reading from all inlets.
In your case, you have to first make a copy of all input signals before
passing them through to the outlets. You
From my limited experience with Catalina in the last few weeks, if you
haven't made an exception in Security & Privacy *the very first time*
you try to load it, you have to delete and reinstall the library. It's
infuriating that you can't unblock it after the fact.
Christof
On 30.05.2020
I think you don't even need a developer account. I somehow remember that
I've manually installed Xcode on my OSX 10.11 machine (which I can't
upgrade to newer OSX versions because it's too old). But I might be wrong...
On 29.05.2020 18:05, Dan Wilcox wrote:
If you have an Apple Developer
And out of sheer magic (at least to my eyes) a Pd app appears from
nothing to me...
What do you mean? Did "make app" not work for you before?
The issue I'm having might be related to casting float to int
Yes, I think so too. https://github.com/pure-data/pure-data/issues/927
shows -2147483647
We already use getLastError() / errno... The error code/message is not
specific enough.
Again, I already have the necessary architecture detection code, and if
people don't consider it overkill, I could try to integrate it into Pd.
Christof
On 28.05.2020 21:48, Martin Peach wrote:
On Thu,
, the GUI might have a *different* architecture than
the Pd-core (and the latter matters when it comes to loading externals).
therefore the Pd-core sends its architecture to the GUI as well,
triggering the 2nd output.
i guess the printout could be improved, i'm open to suggestions.
On 5/28/20 7:2
Let's start a new thread for this.
Attempting to load externals of the wrong type
just gives those vague 'unable to load' errors.
I have some cross-platform CPU architecture detection code which I code
port to Pd, so that we could have more descriptive error messages.
Help->About Pd gives:
nd another with IPv6 turned on for Vista+.
I'm not sure but I get the impression lots of folks are using WinXP - I hear it
described as the "last good version" from time to time. I have to agree
personally, fwiw...
cheers
M
On Thu, May 28, 2020 at 01:49:58PM +0200, Christof Ressi wrot
@Miller: are you compiling on a Windows XP machine !?
The #ifdefs would fix the compilation error on Windows XP, but we still
have to compile the release on a Windows Vista+ machine to make the IPv6
functionality available. I think Windows XP doesn't even support IPv6
before service pack 3.
Hi,
your problem is that Pd writes the messages to stderr, but the pipe
operator reads from stdout. You can redirect stderr to stdout with
"2>&1" before filtering the output (should also work in modern Powershell).
Christof
On 24.05.2020 22:50, Henri Augusto Bisognini wrote:
Hey list!
memory addresses both as source and destination operands, so the
compiler has to load the input into registers anyway.
---
Finally, buffer aliasing is also about saving memory and reducing cache
misses, probably more than avoiding copy operations.
Christof
On 23.05.2020 15:11, Roman Haefe
Other examples would be zexy's [mux~] and [demux~].
is there a reason that cyclone/matrix~ is using dsp_add over dsp_addv?
Generally, you don't *need* to pass the individual signal buffers to
dsp_add. Many externals with variable inputs/outputs simply allocate an
array of t_float pointers
Hi, it's certainly possible to load Pd patches entirely from memory with
a binbuf. In fact, Pd itself does this for its private hidden canvases.
Checkout the patch "garray_arraytemplatefile" in g_array.c and
garray_init() for how to read it.
Christof
On 04.05.2020 22:46, Andi McClure wrote:
nize the snarkov object when I open the patch.
I'm not familiar with this, but I assumed I should compile when I
found the source code.
I sent a print of the error message.
On Fri, May 1, 2020 at 2:42 PM Christof Ressi <mailto:i...@christofressi.com>> wrote:
Ok, but the folder alre
ct section. http://msp.ucsd.edu/pdrp/latest/
I found the source code in the folder called lib, inside Plutons's folder.
On Fri, May 1, 2020 at 12:38 PM Christof Ressi <mailto:i...@christofressi.com>> wrote:
please show the repository where you found the source code.
Christof
please show the repository where you found the source code.
Christof
On 01.05.2020 16:29, Vinicius Cesar wrote:
Hello,
I was studying the use of Markov Chain in Philippe Manoury's Pluton,
and I came across an object call snarkov, PD can't load this object.
Searching for this external in the
, Christof Ressi wrote:
One danger I'd like to avoid is all of the Windows people *not* using
the autotools build as then we lose testing and further updates on
that platform.
That danger is very real :-) I would definitely prefer CMake over
autotools.
i think CMake is an abomination.
i'm obviously
One danger I'd like to avoid is all of the Windows people *not* using
the autotools build as then we lose testing and further updates on
that platform.
That danger is very real :-) I would definitely prefer CMake over autotools.
but in general I find autotools to be the easiest to use for
:00 PM, pd-dev-requ...@lists.iem.at
<mailto:pd-dev-requ...@lists.iem.at> wrote:
Date: Tue, 21 Apr 2020 10:24:54 +0200
From: Christof Ressi <mailto:i...@christofressi.com>>
To:pd-dev@lists.iem.at <mailto:pd-dev@lists.iem.at>
Subject: Re: [PD-dev] PD-specific tips for com
Autotools (especially libtool) is very slow on MinGW. On my system,
compiling the /extra externals takes significantly longer than compiling
the actual Pd application, only because of libtool.
If you want to get faster build times, rewrite the build system in CMake
and compile with MSVC :-)
cted netreceive
objects"
Note that I first send messages from [netsend -u] to [netreceive -u]
before trying to send back (otherwise it wouldn't work in any case :-)
Do you know the commit where this feature has been apparantly introduced?
Christof
On 28.03.2020 10:40, Christof Re
One thing that was possible in pd 0.50 was to "send" to netreceive -u ... this
was added by Shahrokh Yadegari a year or so ago.
Interesting. I remember it being mentioned in the help patch, but it
never seemed to work for me (at least on Windows). We can of course
bring it back!
What I
used or tried to use libpd under such
extreme memory constraints and can share their experience?
Christof
On 24.03.2020 11:49, Boštjan Jerko wrote:
Do you know what are the minimum values for the stack and heap? At least rough
estimation.
B.
On 24 Mar 2020, at 11:30, Christof Ressi wrote
Check how much memory Pd is using. I mean, a 16 kB stack and 130 kB heap
is still pretty small... (if those hex numbers mean bytes). Pd hasn't
really been designed to run on microcontrollers ;-). Anyway, have a look
at m_memory.c, there are some heap memory debug options, in case your
what's "vp"?
a variable in class_new()
also, your underlying problem sounds like a typical usecase for " libpd".
From his first e-mail, I understood he is already using libpd.
Christof
On 22.03.2020 13:09, IOhannes m zmölnig wrote:
Am 22. März 2020 09:13:23 MEZ schrieb "Boštjan Jerko" :
r exiting class_new the microcontroller stops with a hard error.
So maybe the question is really - should the vp be empty and if not - why is
that happening?
B.
On 21 Mar 2020, at 13:58, Christof Ressi wrote:
Hi,
The code compiles but I get the error when running in the pdint_setup where
p
Hi,
The code compiles but I get the error when running in the pdint_setup where
pdint_new in class_new breaks with an error.
My idea is to first try to understand the code hence my question:
I think first you should post the error you get ;-) Maybe the problem is
trivially solved without
inlet though!
Thanks!
-Alex
On Thu, Mar 19, 2020 at 8:28 AM Christof Ressi
mailto:i...@christofressi.com>> wrote:
Hi,
for the first inlet you can simply set the float field passed
to CLASS_MAINSIGNALIN. This is actually done by many Pd
I've tested loading externals and it just doesn't create and complain
Are you sure? Turn on log level 4. Here's what I get when I try to load
a single precision [markex/randomF] in my double precision built:
refusing to load 32bit-float object 'randomF' into 64bit-float Pd
maximum object
ill load the correct version. This can be
automated by pd-lib-builder.
Christof
On 26.02.2020 13:39, IOhannes m zmoelnig wrote:
On 26.02.20 13:00, Christof Ressi wrote:
I think I found it :-)
https://github.com/pure-data/pure-data/pull/807#issuecomment-561251729
thanks!
if we want to pass th
dre Torres Porres wrote:
Em qua., 26 de fev. de 2020 às 09:29, Christof Ressi
mailto:i...@christofressi.com>> escreveu:
I can see that showing too many digits can be annoying in number boxes
But you can set the width/digits of number boxes, it's not that now
all boxes will chan
I can see that showing too many digits can be annoying in number boxes,
but in object boxes, where the number is (usually) typed by the user,
the higher precision is certainly desirable. At the very least, Pd
should *save* the number with a higher precision.
Christof
On 26.02.2020 12:48,
PS: i'm absolutely sure i write this up before (months, years ago?) but
cannot find it anymore :-(
I think I found it :-)
https://github.com/pure-data/pure-data/pull/807#issuecomment-561251729
On 26.02.2020 10:09, IOhannes m zmoelnig wrote:
(i'm not sure how this ended on pd-list, m oving it
To clarify: The compiler is allowed to pack adjacent bitfields (and will
probably do it), because that's the whole point of using bitfields. The
whole set of bitfields, however, will be aligned based on the int type.
You definitely don't have to manually add padding.
Further reading:
a union used
in one part of the code to another to replace a dereferencing cast.
That seems to have helped, at least in my testing so far.
On Feb 8, 2020, at 12:00 PM, pd-dev-requ...@lists.iem.at
<mailto:pd-dev-requ...@lists.iem.at> wrote:
Message: 2
Date: Sat, 8 Feb 2020 11:06:30 +
Hi Dan,
if you're accidentally writing beyond the stack, then the backtrace
becomes useless. You can notice this by looking at the function
addresses/names. If they have low addresses like 0x9 or don't show a
name (although Pd is built with debug symbols), than this is strong
indication for
als I
write, but either way it is good to know about that appraoch.
-Alex
On Tue, Jan 28, 2020 at 6:41 AM Christof Ressi <mailto:i...@christofressi.com>> wrote:
Hi,
So my question is: if I allocate an array/table in an external,
do I have to manage its de-allocation or is the
Hi,
So my question is: if I allocate an array/table in an external, do I
have to manage its de-allocation or is there some sort of reference
counter?
A graphical array always belongs to a canvas and it will be
automatically be destroyed when the canvas is freed. Destroying a single
> The complexity of the scalars isn't much an issue, more the quantity of elements is what brings tcl/tk down. I think the problem is there, and not really with the Pd core.
Tcl/Tk's canvas implementation is just horrible. Whenever you change something in the canvas, it will redraw the whole
det: Samstag, 04. Januar 2020 um 17:13 Uhr
Von: "Christof Ressi"
An: "x nor" , pd-dev
Betreff: Re: [PD-dev] capabilities of data structures with externals
There's not much you can do with data structures/pointers in externals if you stick to the official header "m_p
s remember to call "gpointer_check()" first to varify that the gpointer is still valid.
Not that I've ever needed this :-)
Christof
Gesendet: Samstag, 04. Januar 2020 um 16:49 Uhr
Von: "x nor"
An: "Christof Ressi"
Cc: pd-dev
Betreff: Re: [PD-dev] capabilities of
Being a Lua user myself, I wholeheartedly agree.
One "problem" with Lua, though, is that it uses 1-based indexing by default, but it's possible to override this for user data (e.g. Pd arrays, text, atom lists, etc.)
Another advantage of lua is that you can control the garbage collector,
a by name. No need to explicitly store
pointers!
Christof
*) I just noticed that the [text] and [array] methods don't support the "-"
wildcard in "-s ".
> Gesendet: Samstag, 04. Januar 2020 um 00:54 Uhr
> Von: "Miller Puckette"
> An: "x nor"
&g
> maybe not exactly the goal here but: if get/set would need only the name of the variables and not the template,
this is already possible! you just have to use "-" for the template name and the template will be deduced. See the help patch for [set] and [get].
Christof
Gesendet: Samstag,
101 - 200 of 274 matches
Mail list logo