purr-data issueshttps://git.purrdata.net/jwilkes/purr-data/-/issues2021-04-02T14:44:17Zhttps://git.purrdata.net/jwilkes/purr-data/-/issues/551garray_getfloatarray warning is wrong2021-04-02T14:44:17ZJonathan Wilkesgarray_getfloatarray warning is wrongThe [warning](https://git.purrdata.net/jwilkes/purr-data/blob/master/pd/src/g_array.c#L1611) for garray_getfloatarray says:
"warning: extern using garray_getfloatarray() won't work in 64-bit version"
Now that we have begun to support P...The [warning](https://git.purrdata.net/jwilkes/purr-data/blob/master/pd/src/g_array.c#L1611) for garray_getfloatarray says:
"warning: extern using garray_getfloatarray() won't work in 64-bit version"
Now that we have begun to support PD_FLOATSIZE == 64 this is wrong. For example, purr-double running on a 32-bit machine should trigger this warning as well.
Consequently, the warning should be made more precise.https://git.purrdata.net/jwilkes/purr-data/-/issues/550s_n type mismatch2019-09-26T03:43:42ZJonathan Wilkess_n type mismatchSee: https://github.com/pure-data/pure-data/pull/673
Quick-n-nasty review:
Those casts essentially mean, "get me the t_signal member field s_n which I assert through my cast is a pointer-sized int." That's wrong-- s_n is sizeof(int), n...See: https://github.com/pure-data/pure-data/pull/673
Quick-n-nasty review:
Those casts essentially mean, "get me the t_signal member field s_n which I assert through my cast is a pointer-sized int." That's wrong-- s_n is sizeof(int), not sizeof(t_int).
Quick-n-dirty solution: One needs to cast to the appropriate type (here `int`) before using data from the slot where we initially stored s_n. Luckily s_n is required by the interface to be an `int` so all of those performance routines can cast to `int` to fix the problem.
I'm not completely sure that avoids any undefined behavior wrt variadic arg promotion. And yes, my solution still passes around whatever garbage is in the higher bits of the variadic arg slot where s_n is stored. But setting and retrieving using an `int` cast should ensure we never touch any of those higher bits.https://git.purrdata.net/jwilkes/purr-data/-/issues/549update inno setup to v62019-09-09T05:05:12ZJonathan Wilkesupdate inno setup to v6Inno Setup is now at version 6.
* update it on the runner
* update it in packages/win32_inno/MakefileInno Setup is now at version 6.
* update it on the runner
* update it in packages/win32_inno/MakefileJonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/issues/548Potential bugs in externals detected on OBS2019-09-10T21:17:10ZAlbert GräfPotential bugs in externals detected on OBSWhile building RPMs of purr-data for openSUSE Leap 5.1 and 5.0 on the Open Build Service, I noticed the following problem reports in the build logs. They're running rpmlint there at the end of the build, which also tries to find potentia...While building RPMs of purr-data for openSUSE Leap 5.1 and 5.0 on the Open Build Service, I noticed the following problem reports in the build logs. They're running rpmlint there at the end of the build, which also tries to find potential issues in the code. I think that this is a useful service, although it's also somewhat annoying as it prevents my builds from finishing. ;-)
It might be that these are all just false positives, but it can't hurt to have a look at them anyway some time. I invite anyone interested to join me, it's always good to have a few more eyeballs sifting through such issues.
The issues are from the build log at https://build.opensuse.org/build/home:aggraef/openSUSE_Leap_15.1/x86_64/purr-data/_log, from which I extracted the interesting bits below (note that the original log may have disappeared or replaced with a new log when you read this, so I'm also attaching a full snapshot of the log below).
~~~
[ 1905s] I: A function overflows or underflows an array access. This could be a real error,
[ 1905s] but occasionaly this condition is also misdetected due to loop unrolling or strange pointer
[ 1905s] handling. So this is warning only, please review.
[ 1905s] W: purr-data arraysubscript /home/abuild/rpmbuild/BUILD/purr-data-2.9.0+git4163+485302f9/externals/jasch_lib/detox/detox.c:484
~~~
~~~
[ 1905s] I: Program is using implicit definitions of functions getting
[ 1905s] pointers or implemented by macros. These functions need to use their
[ 1905s] correct prototypes to allow correct argument passing on e.g. x86_64 .
[ 1905s] - Implicit memory/string functions need #include <string.h>.
[ 1905s] - Implicit *printf functions need #include <stdio.h>.
[ 1905s] - Implicit *printf functions need #include <stdio.h>.
[ 1905s] - Implicit *read* functions need #include <unistd.h>.
[ 1905s] - Implicit *recv* functions need #include <sys/socket.h>.
[ 1905s] W: purr-data implicit-pointer-decl s_inter.c:992
[ 1905s] W: purr-data implicit-pointer-decl s_loader.c:222
[ 1905s] W: purr-data implicit-pointer-decl scramble~.c:77
~~~
~~~
[ 1906s] I: Program causes undefined operation
[ 1906s] (likely same variable used twice and post/pre incremented in the same expression).
[ 1906s] e.g. x = x++; Split it in two operations.
[ 1906s] W: purr-data sequence-point /home/abuild/rpmbuild/BUILD/purr-data-2.9.0+git4163+485302f9/externals/jasch_lib/detox/detox.c:343, 360, 601
[ 1906s] W: purr-data sequence-point control/serial_bird.c:132
[ 1906s] W: purr-data sequence-point control/serial_ms.c:72
[ 1906s] W: purr-data sequence-point control/serial_mt.c:34
[ 1906s] W: purr-data sequence-point tabsort.c:92
[ 1906s] W: purr-data sequence-point tabsort2.c:114
[ 1906s]
[ 1906s] I: Program is likely to break with new gcc. Try -fno-strict-aliasing.
[ 1906s] W: purr-data strict-aliasing-punning cwiidmodule.c:201
[ 1906s] W: purr-data strict-aliasing-punning dumpOSC.c:914
[ 1906s] W: purr-data strict-aliasing-punning readsfv~.c:671, 684
[ 1906s] W: purr-data strict-aliasing-punning svf~.c:60, 61
[ 1906s]
[ 1906s] I: Program is using uninitialized variables.
[ 1906s] Note the difference between "is used" and "may be used"
[ 1906s] W: purr-data uninitialized-variable cxc_split.c:34
[ 1906s]
[ 1906s] I: Statement might potentially overflow a destination buffer, where a size larger
[ 1906s] than the actual buffer was specified
[ 1906s] E: purr-data destbufferoverflow cooled~.c:262
[ 1906s]
[ 1906s] I: Program returns random data in a function
[ 1906s] E: purr-data no-return-in-nonvoid-function /home/abuild/rpmbuild/BUILD/purr-data-2.9.0+git4163+485302f9/externals/iem/iemmatrix/src/mtx_dispersive_dline.c:154
[ 1906s]
[ 1906s] I: Program returns random data in a function
[ 1906s] E: purr-data no-return-in-nonvoid-function /home/abuild/rpmbuild/BUILD/purr-data-2.9.0+git4163+485302f9/externals/iem/iemmatrix/src/mtx_dispersive_dline.c:154
~~~
Full build log: [obs-buildlog.txt](/uploads/f359207e27fab64ff7dd815030296c18/obs-buildlog.txt)
The build was from current master (plus !312 which doesn't modify any C/C++sources), so the line numbers should be interpreted relative to rev. 53166958775762e53ddc2daa70bde485b5499a7c.
@ico I guess that one of your modules is also in there (strict-aliasing-punning cwiidmodule.c:201), so it would be nice if you could have a look at that line and tell me whether you're actually doing some nasty type punning there, or whether that line looks ok to you.Albert GräfAlbert Gräfhttps://git.purrdata.net/jwilkes/purr-data/-/issues/547get rid of github-based submodules2019-08-03T04:47:42ZJonathan Wilkesget rid of github-based submodulesrtcmix-in-pd and cwiid should either have a repo at git.purrdata.net from which to pull, or we should just fold them into the main repo.rtcmix-in-pd and cwiid should either have a repo at git.purrdata.net from which to pull, or we should just fold them into the main repo.https://git.purrdata.net/jwilkes/purr-data/-/issues/546Get rid of legacy -L/sw/lib linker options2019-07-31T22:33:54ZAlbert GräfGet rid of legacy -L/sw/lib linker optionsThis affects macOS only. Some of the externals are littered with these linker options from a bygone era (anyone remember Fink?), which don't serve any purpose any more and cause lots of warnings from the compiler. We can and should get r...This affects macOS only. Some of the externals are littered with these linker options from a bygone era (anyone remember Fink?), which don't serve any purpose any more and cause lots of warnings from the compiler. We can and should get rid of these.https://git.purrdata.net/jwilkes/purr-data/-/issues/545[hcs/colorpanel] returns error2019-08-07T00:11:54ZAntonio Roberts[hcs/colorpanel] returns errorI can successfully load [hcs/colorpanel]. However, if I send a bang to it it returns the following error in the message window and doesn't load
```
legacy tcl command at 104 of colorpanel.c: eval [read [open {/opt/purr-data/lib/pd-l2ork...I can successfully load [hcs/colorpanel]. However, if I send a bang to it it returns the following error in the message window and doesn't load
```
legacy tcl command at 104 of colorpanel.c: eval [read [open {/opt/purr-data/lib/pd-l2ork/extra/hcs/colorpanel.tcl}]]
[list2symbol] part of zexy-2.2.6 (compiled May 8 2019)
Copyright (c) 1999-2012 IOhannes m zmölnig, forum::für::umläute & IEM
[2] legacy tcl command at 19 of colorpanel.c: after idle [list after 100 ::hcs::colorpanel::open #556c2e9ba350 #ffffff]
```https://git.purrdata.net/jwilkes/purr-data/-/issues/543recommend using [declare] in [import] help patch2023-04-04T02:23:22ZJonathan Wilkesrecommend using [declare] in [import] help patch`[declare]` is the standard library loading mechanism. So unless someone needs `[import]` to iterate through the list of loaded libraries `[declare]` should be used.
The help patch for `[import]` should reflect this.`[declare]` is the standard library loading mechanism. So unless someone needs `[import]` to iterate through the list of loaded libraries `[declare]` should be used.
The help patch for `[import]` should reflect this.https://git.purrdata.net/jwilkes/purr-data/-/issues/541[text search -s] crashes when sent wrong pointer2019-05-15T23:59:01ZJonathan Wilkes[text search -s] crashes when sent wrong pointer[text search -s foo array-name] will crash if you send it a pointer to something that isn't "foo".[text search -s foo array-name] will crash if you send it a pointer to something that isn't "foo".Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/issues/539use [spigot] instead of [gate 1 1] in preset_node_array.pd2019-04-29T18:14:13ZJonathan Wilkesuse [spigot] instead of [gate 1 1] in preset_node_array.pd@ico is there a reason why you're using the external `[gate]` instead of the core object `[spigot]` in preset_node_array.pd?
Since Albert now has the `make light` for just the core and the some pddp externals, it might be nice to switch...@ico is there a reason why you're using the external `[gate]` instead of the core object `[spigot]` in preset_node_array.pd?
Since Albert now has the `make light` for just the core and the some pddp externals, it might be nice to switch it out.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/issues/538put list processing API in public interface2019-04-24T16:49:36ZJonathan Wilkesput list processing API in public interfaceSuppose we have an external class "foo" which takes a single float input and produce a single output.
Now suppose the developer wants to revise "foo" so that it can handle lists. E.g., for a list of 5 floats it outputs a list of size 5....Suppose we have an external class "foo" which takes a single float input and produce a single output.
Now suppose the developer wants to revise "foo" so that it can handle lists. E.g., for a list of 5 floats it outputs a list of size 5.
Some problems:
* what kind of data structure does the developer use to build up the output list? An array would be fast but statically allocated to some small size. Automatic allocation on the stack is more flexible but more dangerous and not necessarily portable. Heap allocation is a good catchall but is not realtime safe.
* suppose the input list can be a mixture of floats and symbols. How then to handle anythings vs. lists? To convert an anything to a list you must allocate a container of size (argc + 1), put the selector at index 0, then put argv after that.
These problems are handled in x_list.c, but we need a public interface so that external devs can all use the same tools for processing lists. This is especially important because memory allocation in externals has a high probability of causing crasher bugs.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/issues/536tar_em_up.sh etc2019-08-24T00:16:16ZPatricktar_em_up.sh etcThe line 310 of tar_em_up.sh deleted my /etc (on this sandbox I run everything as root).The line 310 of tar_em_up.sh deleted my /etc (on this sandbox I run everything as root).https://git.purrdata.net/jwilkes/purr-data/-/issues/535Windows - Gem video not loading2019-09-30T03:10:21ZPatrickWindows - Gem video not loadingOn Windows it's not possible to load any video (any codec). There's a post on the forum with more [information](https://forum.pdpatchrepo.info/topic/9408/video-unable-to-open-play-on-windows-7). The problem is also on Windows 10.On Windows it's not possible to load any video (any codec). There's a post on the forum with more [information](https://forum.pdpatchrepo.info/topic/9408/video-unable-to-open-play-on-windows-7). The problem is also on Windows 10.https://git.purrdata.net/jwilkes/purr-data/-/issues/529add part of contributor's guide about running and writing tests2019-04-16T21:30:41ZJonathan Wilkesadd part of contributor's guide about running and writing testsFor adding a new core feature or fixing a bug, tests need to be run and created.
For porting stuff, here's a guide:
1. Diff the contents against the version of Pd from which you're porting.
2. Notice any differences in the diff and not...For adding a new core feature or fixing a bug, tests need to be run and created.
For porting stuff, here's a guide:
1. Diff the contents against the version of Pd from which you're porting.
2. Notice any differences in the diff and note the functions
3. For each relevant function do `git log -L :<funcname>:<file>` where "funcname" is the name of the function where a change happened and "file" is the filename. (Often it only takes one try to find the relevant commits for all the relevant changed code. But if not, repeat with the next function...)
4. Read the commit message for any relevant commits to understand *why* there might be discrepancies.
5. Start porting the changes.
6. Get it compiling.
7. Run the regression tests.
8. Write new tests for the code that was added.Jonathan WilkesJonathan Wilkeshttps://git.purrdata.net/jwilkes/purr-data/-/issues/527Unathorized Visual Objects show up blank in latest Purr-data2019-04-16T21:16:03ZBrandon HaleUnathorized Visual Objects show up blank in latest Purr-dataHello again,
I am not sure if this is known by the purr-data team, but a lot of the tcl visual objects from [here](https://puredata.info/downloads/unauthorized) show up in purr-data as blank objects. Objects like scratcher~, sonogram~, ...Hello again,
I am not sure if this is known by the purr-data team, but a lot of the tcl visual objects from [here](https://puredata.info/downloads/unauthorized) show up in purr-data as blank objects. Objects like scratcher~, sonogram~, pianoroll, and playlist do not appear at all.https://git.purrdata.net/jwilkes/purr-data/-/issues/526Escape character lost on copy and save.2019-04-09T08:32:16ZArthurEscape character lost on copy and save.I need to be able to escape the comma in message boxes in order the send text, strings including comma's, white space, etc. to a serial port. I can enter a comma with a backslash escape character and this won't break up the message into ...I need to be able to escape the comma in message boxes in order the send text, strings including comma's, white space, etc. to a serial port. I can enter a comma with a backslash escape character and this won't break up the message into multiples. BUT, the backslash gets lost, stripped out on saving the patch or even on copying the message box in patch..
Edit: Purr Data 2.8.1 on Linux
![Screenshot_from_2019-04-07_22-56-05](/uploads/b9265407190be6db87835e5749df8392/Screenshot_from_2019-04-07_22-56-05.png)https://git.purrdata.net/jwilkes/purr-data/-/issues/524pack - stored pointer going stale2019-03-28T19:37:00ZmyQwilpack - stored pointer going staleConsider the following patch:
[namecanvas foo]
[traverse foo, bang(
|
[pointer]
|
[list $1 123 $1(
|
[pack p f p]
|
[print]
Clicking the traverse message results in the console printing "(pointe...Consider the following patch:
[namecanvas foo]
[traverse foo, bang(
|
[pointer]
|
[list $1 123 $1(
|
[pack p f p]
|
[print]
Clicking the traverse message results in the console printing "(pointer) 123 (pointer)". However, if I were to then delete the list message and make a direct connection from the pointer to the pack object, I'll get a stale pointer error. But this doesn't happen in pd-vanilla, where I'll keep getting the same message printed over.
[p-test.pd](/uploads/875a79ddf8282540e8e94f55a8015482/p-test.pd)https://git.purrdata.net/jwilkes/purr-data/-/issues/522Key autorepeat disable option not working on Windows2019-03-25T02:09:36ZIvica BukvicKey autorepeat disable option not working on WindowsThis is on the latest purr-data 2.8.1 and Win 8.1 64bit. Basically optional argument does not disable autorepeat. The help file should be also updated as in pd-l2ork I reversed the behavior to ensure backwards compatibility to no arg bei...This is on the latest purr-data 2.8.1 and Win 8.1 64bit. Basically optional argument does not disable autorepeat. The help file should be also updated as in pd-l2ork I reversed the behavior to ensure backwards compatibility to no arg being autorepeat on. The help file should be also updated accordingly. Hope this helps.https://git.purrdata.net/jwilkes/purr-data/-/issues/521fix background in dmg installer for osx2019-03-19T14:42:04ZJonathan Wilkesfix background in dmg installer for osxFor the OSX dmg installer, the background image isn't getting displayed in the little window where the user drags Purr Data's icon into the Applications folder.
The relevant background image is `purr-data/packages/darwin_app/background....For the OSX dmg installer, the background image isn't getting displayed in the little window where the user drags Purr Data's icon into the Applications folder.
The relevant background image is `purr-data/packages/darwin_app/background.png`
Might want to check both `purr-data/packages/darwin_app/Makefile` as well as the build output to see if there's an error somewhere.https://git.purrdata.net/jwilkes/purr-data/-/issues/520update pdlua help patch2019-03-19T03:19:11ZJonathan Wilkesupdate pdlua help patch[Here](https://git.purrdata.net/Konsumer/pd-lua/commit/23d4387be8c727f146acc29c476a7d2ad29157d1) is a revision for the pdlua help patch. It needs to be considered upstream in github, then I can pull for the Purr Data gitlab mirror.[Here](https://git.purrdata.net/Konsumer/pd-lua/commit/23d4387be8c727f146acc29c476a7d2ad29157d1) is a revision for the pdlua help patch. It needs to be considered upstream in github, then I can pull for the Purr Data gitlab mirror.Albert GräfAlbert Gräf